誰かがF#で非同期のHTTPハンドラをコーディングするときに使う良いパターンを教えてもらえますか?F#で非同期のHTTPハンドラを実装するためのパターン?
IHttpAsyncHandler
を実装する必要があり、そのインターフェイスにはBeginProcessRequest
とEndProcessRequest
が必要です。
Async.StartTask
を返信しますか? state:obj
とAsyncCallback
を処理するにはどうすればよいですか?私の頭の上オフ
誰かがF#で非同期のHTTPハンドラをコーディングするときに使う良いパターンを教えてもらえますか?F#で非同期のHTTPハンドラを実装するためのパターン?
IHttpAsyncHandler
を実装する必要があり、そのインターフェイスにはBeginProcessRequest
とEndProcessRequest
が必要です。
Async.StartTask
を返信しますか? state:obj
とAsyncCallback
を処理するにはどうすればよいですか?私の頭の上オフ
:非同期ワークフローを使用してハンドラを実装して、正確に、Async.AsBeginEnd
open System
open System.Web
type HttpAsyncHandler() =
let processRequestAsync (context : HttpContext) = async {
// TODO: implement
return()
}
let beginAction, endAction, _ = Async.AsBeginEnd(processRequestAsync)
interface IHttpAsyncHandler with
member this.BeginProcessRequest(context, callback, extraData) = beginAction(context, callback, extraData)
member this.EndProcessRequest(iar) = endAction (iar)
// other members omitted
で何をしようとしていることを暴露?できる場合は、HttpMessageHandler
とそのilkをSystem.Net.Http
から考えてください。 async { ... } |> Async.StartAsTask
で簡単に
protected abstract Task<HttpResponseMessage> SendAsync(
HttpRequestMessage request,
CancellationToken cancellationToken);
の方法を上書きするだけで済みます。静的な型指定によって、HTTPのさまざまな属性にアクセスすることもできます。さまざまなサブクラスを使用すると、ASP.NET、WCF(自己ホスト)、またはOWINのような3部構成のプラットフォームでも実行できます。
私は、多くの統計情報を含むJSONリクエストを取得しようとしています。解析し、Azureのブロブに追加します。 – Henrik
私が今知っている唯一の方法は、Azureで新しい空のASP.Net Webサイトを作成することです - それ以外の場合はおそらく私はワーカーの役割を使うことができますか?しかし、どうすればHttpMessageHandlerでそれを設定できますか? – Henrik
詳細については、こちらをご覧ください。http://blogs.msdn.com/b/uscloud/archive/2012/03/22/windows-azure-for-the-asp-net-developer-series.aspx 。 'HttpMessageHandler'は最も重要なメンバーですが、他のオプションも使用できます。 –