IHttpContextAccessor HttpContext始终为null

Deo*_*tay 9 asp.net-core

当我试图从IHttpContextAccessor字段获取httpcontext时,我遇到问题始终为null.

有我的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;

        .....
    }
Run Code Online (Sandbox Code Playgroud)

Set*_*Set 16

你总是在Configure方法中使用null HttpContext .

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

您需要传递IHttpContextAccessor服务类并IHttpContextAccessor.HttpContext在请求处理期间调用.您可以在此SO 帖子中查看获取HTTP上下文的"类似"情况.