【问题标题】:Why aspnet_isapi.dll still exists in iis7?为什么IIS7中还存在aspnet_isapi.dll?
【发布时间】:2013-02-10 04:40:29
【问题描述】:

据我所知,asp.net 已经与 IIS 集成。

也就是说,无论传入的请求是什么,asp.net 运行时总是托管在 IIS7 中。 IE。 .aspx 请求或其他静态文件请求,例如 .html.jpg

我们知道,在 IIS6 中,aspnet_isapi.dll 会被加载以创建 asp.net 运行时,并且只有当 .aspx,.ashx 等请求到达时才会运行 asp.net。

现在 asp.net 已经在“集成模式”下与 IIS7 集成,aspnet_isapi.dll 的用途是什么? iis7中还能看到aspnet_isapi.dll是不是兼容性?

【问题讨论】:

    标签: asp.net iis-7


    【解决方案1】:

    简而言之,它只适用于经典模式。

    在经典管道模式下,ASP.NET 作为 ISAPI 扩展插入 IIS 请求处理管道 - 与在 IIS 6 中的方式完全相同。事实上,如果您打开 %WINDIR%\system32\inetsrv\config \applicationHost.config 文件并找到其中的部分,您可以看到如何配置 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,这可确保此处理程序映射仅在应用程序池配置为以经典模式运行时生效。

    【讨论】:

      猜你喜欢
      • 2011-09-04
      • 2023-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-22
      • 2011-04-22
      相关资源
      最近更新 更多