2017-03-23 1 views
0

asp.net 핵심 응용 프로그램이 있고 구성 메서드에서 현재 HttpContext 싶습니다. 그래서 나는 방법을 구성하기 위해 IHttpContextAccessor을 전달하고있다.asp.net 코어의 구성 메소드에서 HttpContext를 얻는 방법은 무엇입니까?

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

그러나 httpContextAccessor.HttpContext는 항상 null의 아래처럼 뭔가

+4

서비스가 시작될 때 실행이 구성됩니다. 그 시점에서 http 컨텍스트가 될 것입니까? 심지어 요청이 있었습니까? 나는 그렇게 느끼지 않는다. 또는, 나는 이것이 어떻게 효과가있을 것이라고 생각하는지 혼란 스럽습니까? –

답변

3

에는 HTTP 요청이 없기 때문에 (R.Richards는 지적)이 작동하지 않는 경우 응용 프로그램이 시작됩니다. Configure은 응용 프로그램이 시작될 때 런타임에 의해 호출되고 첫 번째 요청이 처리되지는 않습니다.

응용 프로그램 시작에 대한 설명서를 참조하십시오 : https://docs.microsoft.com/en-us/aspnet/core/fundamentals/startup.

+3

감사합니다. 내 접근 방식을 변경하고 사용자 지정 미들웨어를 만들었습니다. 미들웨어의 Invoke 메서드에는 매개 변수로 httpContext가 있습니다. – LP13