繁体   English   中英

为什么iis7中仍然存在aspnet_isapi.dll?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM