我正在开发一个自托管的 ASP.NET Web API 应用程序。
一切正常,但现在我正在为 HttpContext
苦苦挣扎:
我需要保存来自客户端的 session 信息。
但是 HttpContext.Current
始终为空。
所以很明显,我的 HttpSelfHostServer
不能使用静态 HttpContext-Class。
我不明白的是:为什么..?
而且我想不出一种方法来告诉 HttpSelfHostServer
和 HttpSelfHostConfiguration
使用 HttpContext
。
这是我正在做的:
创建一个
HttpSelfHostConfiguration
- 1.1 添加
服务解析器
&路由
- 1.2 添加自定义
UserNamePassword-Validator
- 1.1 添加
使用配置创建新的 HttpSelfHostServer 实例
- 2.1
server.OpenAsync().Wait()
- 2.1
非常感谢任何帮助我告诉我的服务器使用 HttpContext.Current
的方法!
干杯!
最佳答案
您将无法在自托管环境中使用 HttpContext。 HttpContext 由 ASP.Net 管道设置,如果您不在 IIS/ASP.Net 下运行,您将不会拥有它。
HttpContext 仅在 Web 托管模式下可用,在该模式下 HttpControllerHandler 创建请求。
仅供引用 - 我邀请您阅读 Pedro Felix 的以下精彩文章,以更好地了解不同的托管模型:
关于c# - HttpSelfHostServer 和 HttpContext.Current,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11347807/