IHttpContextAccessor HttpContext始终为null

时间:2017-06-03 10:55:50

标签: asp.net-core

当我试图从IHttpContextAccessor字段获取httpcontext时,我遇到问题。

有我的startup.cs

    public void ConfigureServices(IServiceCollection services)
    {
        // Add framework services.
        services.AddMvc();
        services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
    }

    public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
    {
        .....

        // This is always null
        var httpContext = app.ApplicationServices.GetService<IHttpContextAccessor>().HttpContext;

        .....
    }

1 个答案:

答案 0 :(得分:15)

Configure方法中总是会有空HttpContext。

此方法用于指定ASP.NET应用程序在应用程序启动时如何响应HTTP请求和调用,而不是每个HTTP请求。这就是为什么没有任何东西,可以填充到HttpContext

您需要在服务类中传递IHttpContextAccessor并在请求处理期间调用IHttpContextAccessor.HttpContext。您可以通过在此SO post中获取HTTP上下文来查看“类似”情况。