HttpSelfHostServer和HttpContext.Current

Ric*_*ard 18 c# self-hosting httpcontext asp.net-web-api

我正在开发一个自托管的ASP.NET web api-application.一切正常,但现在我正在努力HttpContext:

我需要从客户端保存会话信息.但HttpContext.Current总是空的.所以很明显我HttpSelfHostServer不使用静态HttpContext-Class.

我不明白的是:为什么......?而且我无法想办法既不告诉也HtttpSelfHostServer不能HttpSelfHostConfiguration合作HttpContext.

这是我正在做的事情:

  1. 创建一个 HttpSelfHostConfiguration

    • 1.1添加Service-Resolvers&Routes
    • 1.2添加自定义 UserNamePassword-Validator
  2. 使用config创建新的HttpSelfHostServer实例

    • 2.1 server.OpenAsync().Wait()

任何帮助我如何告诉我的服务器工作HttpContext.Current非常感谢!干杯!

Jul*_*obs 28

您将无法在自托管环境中使用HttpContext.HttpContext由ASP.Net管道设置,如果不在IIS/ASP.Net下运行,则不会有.

HttpContext仅在Web-Hosting模式下可用,HttpControllerHandler在其中创建请求.

仅供参考 - 我邀请您阅读Pedro Felix的以下精彩文章,以便更好地了解不同的托管模式:


Dan*_*nna 11

为了解决这个问题(我发现我现在使用很多组件需要在Web API和MVC中同样运行良好),你可以试试我写的这个旧的shim给你一个类似HttpContext的界面.两种口味.它也在NuGet上,这里是源代码: github 上的链接 (或Nuget上的链接)