web-dev-qa-db-ja.com

HttpSelfHostServerおよびHttpContext.Current

私は自己ホスト型のASP.NETWebAPIアプリケーションに取り組んでいます。すべて正常に動作しますが、今はHttpContextで苦労しています:

クライアントからのセッション情報を保存する必要があります。ただし、_HttpContext.Current_は常にnullです。したがって、私のHttpSelfHostServerが静的なHttpContext-Classで機能しないことは明らかです。

私が理解していないのは、なぜ..?そして、HtttpSelfHostServerHttpSelfHostConfigurationHttpContextで動作するように指示する方法がわかりません。

これが私がしていることです:

  1. HttpSelfHostConfigurationの作成

    • 1.1 _Service-Resolvers_&Routesの追加
    • 1.2カスタムの追加_UserNamePassword-Validator_
  2. 設定を使用してHttpSelfHostServerの新しいインスタンスを作成します

    • 2.1 server.OpenAsync().Wait()

サーバーに_HttpContext.Current_を使用するように指示する方法についてのヘルプは大歓迎です!乾杯!

18
Richard

セルフホスト環境ではHttpContextを使用できません。 HttpContextは、ASP.Netパイプラインによって設定されます。これは、IIS /ASP.Netで実行しない場合はありません。

HttpContextは、HttpControllerHandlerがリクエストを作成するWebホスティングモードでのみ使用できます。

参考までに-さまざまなホスティングモデルをよりよく理解するために、PedroFelixからの次のすばらしい記事を読むことをお勧めします。

28
Julien Jacobs

この問題を回避するために(最近、Web APIとMVCで同等に機能する必要のある多くのコンポーネントを使用していることがわかりました)、私が書いたこの古いシムを試して、で機能するHttpContextのようなインターフェイスを返すことができます。両方のフレーバー。 NuGetにもあります。ソースは次のとおりです。 githubのリンク (または Nugetのリンク

11
Daniel Crenna