fro*_*r78 4 iis configuration web-server handler-mappings
假设配置了多个处理程序映射来处理一个请求,在 IIS 中,确定使用哪个处理程序映射来提供响应的算法是什么?
我假设您在询问 IIS7 处理程序映射。
preCondition
每个处理程序映射都有一个隐藏在 IIS 管理器视图中的属性。例如,这里是页面可以具有applicationHost.config
的所有不同页面处理程序的摘录.aspx
(我删除了一些属性以保持简洁):
<add name="PageHandlerFactory-ISAPI-4.0_32bit" path="*.aspx"
preCondition="classicMode,runtimeVersionv4.0,bitness32" />
<add name="PageHandlerFactory-ISAPI-4.0_64bit" path="*.aspx"
preCondition="classicMode,runtimeVersionv4.0,bitness64" />
<add name="PageHandlerFactory-Integrated-4.0" path="*.aspx"
preCondition="integratedMode,runtimeVersionv4.0" />
<add name="PageHandlerFactory-Integrated" path="*.aspx"
preCondition="integratedMode" />
<add name="PageHandlerFactory-ISAPI-2.0" path="*.aspx"
preCondition="classicMode,runtimeVersionv2.0,bitness32" />
<add name="PageHandlerFactory-ISAPI-2.0-64" path="*.aspx"
preCondition="classicMode,runtimeVersionv2.0,bitness64" />
Run Code Online (Sandbox Code Playgroud)
当请求通过 IIS 管道传递时,仅使用.aspx
与其匹配的处理程序。preCondition
通常preConditions
映射到站点或应用程序运行的应用程序池的配置。
因此,如果我有一个在应用程序池中运行的站点,配置为:
.NET Framework 版本 [托管运行时版本] = v2.0 启用 32 位应用程序 [enable32BitAppOnWin64] = True 托管管道模式 [managementPipelineMode] = 经典
如果Default.aspx
收到请求,则选择处理该请求的处理程序将是:
PageHandlerFactory-ISAPI-2.0
有一篇很棒的文章preConditions
在这里进行了更详细的解释:
我忘了说处理程序映射的顺序也是一个考虑因素,特别是对于通配符和无扩展映射。可以在 IIS 管理器中查看/更改这些顺序,方法是打开站点的处理程序映射功能,然后单击右侧“操作”窗格中的“查看有序列表”链接。在此视图中,您可以更改处理程序的处理顺序。
归档时间: |
|
查看次数: |
3395 次 |
最近记录: |