문제

특정 작업 (승인 등)을 수행하기 위해 작성한 IHTTPModule이 포함 된 .NET 웹 사이트가 있습니다. 그러나 웹 사이트에는 불행히도 변경하거나 이동할 수없는 타사 응용 프로그램에 매핑되는 여러 가상 디렉토리가 있습니다 (예 : 커뮤니티 서버 포럼, AdxStudio CMS 등).

해당 가상 디렉토리의 내용에 대한 요청이 이루어질 때 IHTTPModule이 실행되는 것을 방지하는 방법을 찾고 있습니다. 이게 가능해?

편집 - 다음 추가

나는 추가를 실험하고있다 <remove name="X"/> 내부 <httpModules> Web.config 파일의 노드 가상 디렉토리 응용 프로그램의 파일이지만 작동하지 않는 것 같습니다. 타사 응용 프로그램을 업데이트 할 수 있기 때문에 코드/ 구성을 변경할 필요가 없기 때문에 훌륭한 솔루션이 아닐 수도 있습니다.

나는 또한 추가를 시도했다 <location path="." inheritInChildApplications="false"> 내 주변 <system.web> 상위 웹의 노드는 작동하지 않는 것 같습니다.

다시 편집 - 추가 추가

그 이유는 작동하지 않기 때문입니다. ihttpmodule의 init 이벤트가 응용 프로그램 라이프 사이클 당 한 번만 해고되기 때문입니다 (내가 가정했던 요청에 따라). 이벤트 이벤트에 이벤트 리스너를 추가하기 때문에 이벤트 이후의 요청에 따라 여전히 해고되었습니다 ...

도움이 되었습니까?

해결책

이러한 디렉토리 목록과 가상 경로가있는 경우 조회를 구축 할 수 있습니다.

모듈을 트리거하는 모든 httpRequest의 경우 가상 경로가 확인하여 조회의 경로에 속하는지 확인할 수 있습니다. 그렇다면 아무것도하지 않거나 모듈 코드를 종료 할 수 있습니다.

추신 : 성능 문제는 아마도 조회를 응용 프로그램 상태 (예 : 해시 맵 등)에 저장하고 싶을 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top