如何在asp.net核心的configure方法中获取HttpContext?

LP1*_*P13 1 asp.net-core-mvc coreclr asp.net-core

我有 asp.net 核心应用程序,我想在配置方法中使用当前的 HttpContext。所以我传递IHttpContextAccessor给配置方法。像下面这样

 public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory, 
                      IApplicationLifetime appLifetime, IServiceProvider services, 
                      IHttpContextAccessor httpContextAccessor)
{    
           var request = httpContextAccessor.HttpContext.Request;    
}
Run Code Online (Sandbox Code Playgroud)

但是 httpContextAccessor.HttpContext 始终为 null

Hen*_*ema 5

这不起作用,因为在您的应用程序启动时没有 HTTP 请求(正如 R.Richards 指出的那样)。Configure在应用程序启动时由运行时调用,而不是在处理第一个请求时调用。

请查看有关应用程序启动的文档:https : //docs.microsoft.com/en-us/aspnet/core/fundamentals/startup

  • 谢谢。我改变了我的方法,我创建了一个自定义中间件。中间件中的 Invoke 方法有 httpContext 作为参数 (5认同)