2017-06-03 20 views
2

IHttpContextAccessorフィールドからhttpcontextを取得しようとすると問題が発生します。常にnullです。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; 

     ..... 
    } 
+0

設定は、リクエストごとではなく、アプリの起動時に実行されます。 – ssmith

答えて

6

は、あなたが常にConfigure方法でヌルのHttpContextを持つことになりますがあります。

このメソッドは、ASP.NETアプリケーションがHTTPリクエストに応答する方法と、アプリケーションの開始時に1回呼び出す方法を指定するために使用されます。それで、何もないのです。HttpContextに何が埋め込まれるのでしょうか。

サービスクラスにIHttpContextAccessorを渡し、リクエスト処理中にIHttpContextAccessor.HttpContextに電話する必要があります。このSOコンテキストでHTTPコンテキストを取得すると、同様の状況が発生する可能性があります。post

関連する問題