this is a code to read file from local disk:
make sure it runs in the console application.
Tweet to fsharp
make sure it runs in the console application.
open System
open System.IO
open System.ServiceModel
open System.ServiceModel.Web
let siteRoot = @"c:\myCode\"
[<ServiceContract>]
type MyContract() =
[<OperationContract>]
[<WebGet(UriTemplate="{file}")>]
member this.Get(file:string) : Stream =
printfn "Requested : '%s'" file
let path = Path.Combine(siteRoot, file)
let fileExists = File.Exists(path)
if fileExists then
WebOperationContext.Current.OutgoingResponse.ContentType <- "text/html"
let bytes = File.ReadAllBytes(path)
upcast new MemoryStream(bytes)
else
printfn "cannot find %s" path
upcast new MemoryStream()
let startAt address =
let host = new WebServiceHost(typeof<MyContract>, new Uri(address))
host.AddServiceEndpoint(typeof<MyContract>, new WebHttpBinding(), "")
|> ignore
host.Open()
host
let server = startAt "http://localhost:8081/"
printfn "started service..."
ignore <| System.Console.Read()
printfn "closing service..."
server.Close()
printfn "closed"
Tweet to fsharp