2013-02-25 1 views
2

asp.net이 IIS와 통합되어 있다는 것을 알고 있습니다.왜 aspnet_isapi.dll이 iis7에 아직 존재합니까?

즉, asp.net 런타임은 들어오는 요청이 무엇이든 IIS7에서 항상 호스팅됩니다. 예. .aspx 요청 또는 기타 정적 파일 요청 (예 : .html 또는 .jpg)

IIS6에서 .aspx, .ashx과 같은 요청이 도착할 때만 aspnet_isapi.dll이 asp.net 런타임을 만들고 asp.net을 실행하기 위해로드된다는 것을 알고 있습니다.

asp.net이 "통합 모드"에서 IIS7과 통합되었으므로 aspnet_isapi.dll의 용도는 무엇입니까? 우리가 여전히 iis7에서 aspnet_isapi.dll이 호환성을 볼 수있는 이유는 무엇입니까?

답변

1

간단히 말해서 클래식 모드 일뿐입니다.

클래식 파이프 라인 모드에서 ASP.NET은 IIS 요청 처리 파이프 라인에 ISAPI 확장으로 연결됩니다. IIS 6에서와 완전히 똑같습니다. 실제로 % WINDIR % \ system32 \ inetsrv \ 설정 \ applicationHost.config 파일 파일 및 IIS는 aspnet_isapi.dll을에 ASP.NET 특정 요청을 매핑하도록 구성하는 방법을 볼 수있는 그것의 내부 섹션을 찾습니다

<handlers accessPolicy="Read, Script"> 
    ... 
    <add name="PageHandlerFactory-ISAPI-2.0" 
     path="*.aspx" verb="GET,HEAD,POST,DEBUG" 
     modules="IsapiModule" 
     scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" 
     preCondition="classicMode,runtimeVersionv2.0,bitness32" responseBufferLimit="0" /> 
    ... 
</handlers> 

공지 핸들러 매핑에 대한 전제 조건 속성을. 이 속성은 classicMode로 설정되며 응용 프로그램 풀이 클래식 모드에서 실행되도록 구성 될 때만이 처리기 매핑이 적용됩니다.

관련 문제