[英]Why aspnet_isapi.dll still exists in iis7?
据我所知,asp.net已与IIS集成在一起。
也就是说,无论传入请求是什么,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是兼容性的原因吗?
简而言之,它仅适用于经典模式。
在经典管道模式下,ASP.NET作为ISAPI扩展插入IIS请求处理管道中-与IIS 6中完全相同。实际上,如果打开%WINDIR%\\ system32 \\ inetsrv \\ config \\ applicationHost。配置文件并找到其中的部分,您可以看到IIS如何配置为将ASP.NET特定请求映射到aspnet_isapi.dll:
<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>
注意处理程序映射的preCondition属性。 除其他事项外,此属性设置为classicMode,这可确保仅在将应用程序池配置为在经典模式下运行时,此处理程序映射才会生效。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.