HttpSelfHostServer和HttpContext.Current
我正在开发一个自托管的ASP.NET web api-application。 一切正常,但现在我正在努力与HttpContext
:
我需要从客户端保存会话信息。 但是HttpContext.Current
总是为null。 所以很明显我的HttpSelfHostServer
不能使用静态HttpContext-Class。
我不明白的是:为什么……? 我无法想办法告诉HtttpSelfHostServer
和HttpSelfHostConfiguration
都不能使用HttpContext
。
这就是我正在做的事情:
-
创建
HttpSelfHostConfiguration
- 1.1添加
Service-Resolvers
和Routes
- 1.2添加自定义
UserNamePassword-Validator
- 1.1添加
-
使用config创建新的HttpSelfHostServer实例
- 2.1
server.OpenAsync().Wait()
- 2.1
任何帮助我如何告诉我的服务器使用HttpContext.Current
非常感谢! 干杯!
您将无法在自托管环境中使用HttpContext。 HttpContext由ASP.Net管道设置,如果不在IIS / ASP.Net下运行,则不会有。
HttpContext仅在Web托管模式下可用,HttpControllerHandler在其中创建请求。
仅供参考 – 我邀请您阅读Pedro Felix的以下精彩文章,以便更好地了解不同的托管模式:
- HTTP处理架构概述
- 虚拟主机
- 自托管
为了解决这个问题(我发现我现在使用的很多组件需要在Web API和MVC中同样运行),你可以试试我写的这个旧的shim给你一个类似HttpContext的界面。两种口味。 它也在NuGet上,这里是源代码: github 上的 链接 (或Nuget上的链接 )