18

私は自己ホスト型の ASP.NET Web API アプリケーションに取り組んでいます。すべてがうまくいきますが、今私は苦労していHttpContextます:

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

私が理解していないのは、なぜ..? そして、私はどちらとも言わず、一緒に働く方法を理解できHtttpSelfHostServerませHttpSelfHostConfigurationHttpContext

これが私がやっていることです:

  1. の作成HttpSelfHostConfiguration

    • 1.1 追加Service-Resolvers&Routes
    • 1.2 カスタムの追加UserNamePassword-Validator
  2. 構成でHttpSelfHostServerの新しいインスタンスを作成します

    • 2.1server.OpenAsync().Wait()

サーバーにどのように動作するように指示できるかについてのヘルプHttpContext.Currentは大歓迎です! 乾杯!

4

2 に答える 2

29

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

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

参考までに、Pedro Felix による次の素晴らしい記事を読んで、さまざまなホスティング モデルをよりよく理解することをお勧めします。

于 2012-07-15T22:22:05.107 に答える
12

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

于 2012-10-28T01:10:53.650 に答える