c# - HttpSelfHostServer 和 HttpContext.Current

标签 c# asp.net-web-api httpcontext self-hosting

我正在开发一个自托管的 ASP.NET Web API 应用程序。 一切正常,但现在我正在为 HttpContext 苦苦挣扎:

我需要保存来自客户端的 session 信息。 但是 HttpContext.Current 始终为空。 所以很明显,我的 HttpSelfHostServer 不能使用静态 HttpContext-Class。

我不明白的是:为什么..? 而且我想不出一种方法来告诉 HttpSelfHostServerHttpSelfHostConfiguration 使用 HttpContext

这是我正在做的:

  1. 创建一个HttpSelfHostConfiguration

    • 1.1 添加服务解析器 & 路由
    • 1.2 添加自定义UserNamePassword-Validator
  2. 使用配置创建新的 HttpSelfHostServer 实例

    • 2.1 server.OpenAsync().Wait()

非常感谢任何帮助我告诉我的服务器使用 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/

相关文章:

尝试访问 Request.Url 时,ASP.NET HttpModule 因 NullReference 异常而失败

c# - C# 中的列表转换

c# - 创建返回值的自定义对话框的最简单方法?

c# - Angular 6 Asp.Net(非核心)Web Api CORS 请求失败

c# - 附加而不是覆盖 Web API 列表

c# - 从单独的控制台应用程序访问 HttpContext.Current.Application

asp.net - ASP .NET 中的 Thread.CurrentPrincipal.Identity - 使用安全吗

C# 线程安全(特别是 MVVM/WPF)

c# - 匹配文本中重复部分的正则表达式

c# - odata 深层次扩展不起作用