2011-10-27 2 views
0

httpmodule을 asp.net 웹 응용 프로그램, iis7, .net 4.0 등에서 설정했습니다. 해결하고자하는 2 가지 문제가 있습니다.세션과 관련하여 httpmodule 관련 문제

httpmodule의 디버깅에서 모듈이 ScriptResource.axd에 호출됨을 발견했습니다. 이것이 호출 될 때 실행됩니다. 내가 이것을 방지 할 수있는 방법이 있습니까? 모듈을 내 httphandlers, .asmx 서비스 및 aspx 페이지 요청에 대해 실행시키고 싶지만 scriptresource 처리기에 대한 호출의 오버 헤드를 원하지 않습니다.

Secondling은 HttpModules에서 세션 상태를 사용할 수 있습니까? 그렇다면 사용할 수있는 이벤트는 무엇입니까?

+0

첫 번째 부분에서는 모듈의 URL을 검사하여 특정 URL/요청과 일치하는지 여부 만 확인할 수 있습니다. 특정 옵션을 무시하도록 모듈을 설정할 때 구성 옵션이 있는지 확실하지 않습니다. – Jonas

+0

HttpModule의 세션 문제에 대한이 질문을 참조하십시오. http://stackoverflow.com/q/276355/292060 – goodeye

답변

1

이미 언급했듯이 응용 프로그램의 모든 요청에 ​​대해 HttpModules이 활성화되어 있으므로 HttpModule의 들어오는 URL을 검사 한 다음이를 기반으로 수행 할 작업을 결정해야합니다.

AcquireRequestState 이벤트 중에 세션 상태가로드되므로 HttpModule에서 검사 할 수있는 가장 빠른 기회는 PostAcquireRequestState 이벤트입니다. 세션 상태는 ReleaseRequestState 이벤트가 발생하는 시점에서 유지되므로 세션을 변경하면 그 시점 이전에 변경해야합니다. 따라서 두 이벤트 사이의 HttpApplication pipeline 중 언제든지 세션 상태에 액세스 할 수 있습니다.