2017-03-23 73 views
0

我有asp.net核心應用程序,我希望在配置方法中使用當前的HttpContext。所以我通過IHttpContextAccessor配置方法。類似下面如何在asp.net核心中的configure方法中獲取HttpContext?

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

然而httpContextAccessor.HttpContext總是空

+4

配置服務啓動時運行。那個時候會不會有一個http環境?有請求發生了嗎?我*覺得*喜歡它不會。或者,我對我認爲這會起作用感到困惑嗎? –

回答

3

這不起作用,因爲沒有HTTP請求(如R.Richards指出的),當你的應用程序啓動。 Configure在應用程序啓動時由運行時調用,而不是在處理第一個請求時調用。

請看看有關應用程序啓動的文檔:https://docs.microsoft.com/en-us/aspnet/core/fundamentals/startup

+3

謝謝。我改變了我的方法,並創建了一個自定義中間件。中間件中的Invoke方法具有httpContext參數 – LP13

相關問題