2009-03-16 3 views
0

IIS의 특정 웹 사이트를 통해 들어오는 모든 요청에 ​​대해 .Net 코드의 개별 덩어리를 실행하고 싶습니다. 이것은 완전히 격리 된 코드입니다. 이전이나 이후에는 영향을 미치지 않습니다. 요청에서 일부 정보를 기록한 다음 종료됩니다.IIS에 대한 모든 인바운드 요청에서 임의 코드를 실행하는 데 ASP.Net 프레임 워크의 어떤 부분을 사용합니까?

이 파일은 비 .Net 파일 (PDF, 이미지 등)을 실행하기 위해 Application_OnRequestBegin 또는 다른 ASP.Net 파일에 넣을 수있는 것이 아닙니다. 일반적으로 .Net 프레임 워크에 도달하지 않는 요청에 대해서는 실행해야합니다.

내가 찾고있는 모듈은 무엇입니까? 나는 RTFM을 꽤 많이했지만 파이프 라인을 조작하는 데는 여러 가지 다른 방법이있는 것 같아 어떤 것을 사용해야하는지 잘 모르겠습니다.

답변

3

HTTP Module을 사용할 수 있지만이를 사용하려면 wild card map.을 사용하여 수행 할 수있는 모든 요청을 IIS에 매핑해야합니다. 이것은 .net 런타임을 통해 모든 요청을 강제해야하기 때문에 성능에 영향을 미칩니다.

독자적인 ISAPI 필터를 작성할 수도 있지만 C++를 사용해야합니다. 당신은 당신이 필요로하는 와일드 카드 매핑을 doign 경우

편집

ASP.Net은 기본 핸들러가, 당신은 여전히 ​​당신의 창/microsoft.net/프레임 워크에서의 Web.config이되어 있는지 확인하십시오 ..../config/폴더 :

<httpHandlers> 
.... 
      <add path="*" verb="GET,HEAD,POST" type="System.Web.DefaultHttpHandler" validate="True"/> 
</httpHandlers> 

웹 설정 파일에서 핸들러를 제거했을 수도 있습니다. 마지막으로 pdf 파일에 대한 명시 적 매핑을 추가하고 추가 할 수 있습니다.

+0

와일드 카드는 문제가 없지만 코드가 실행 된 후에 요청을 계속하기를 원합니다. 즉, .Net이 PDF 파일이나 다른 것을 파싱하려고하기 때문에 어떤 것도 실패하지 않기를 바란다. – Deane

+0

좋아, 링크를 찾아 보자. 이렇게하는 방법이있다. – JoshBerke