iis7 的应用程序池分成两种:经典模式与集成模式
在经典模式下,即相当于iis6,此时web.config的其它地方都不用更改,只需要增加以下节点即可:
<system.webServer>
<handlers>
<add name="all" path="*" verb="*" modules="IsapiModule" scriptProcessor="C:\Windows\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" resourceType="Unspecified" requireAccess="None" preCondition="classicMode,runtimeVersionv2.0,bitness64" />
</handlers>
</system.webServer>
以上是64位操作系统的,如是是32位操作系统改成如下:
<system.webServer>
<handlers>
<add name="all" path="*" verb="*" modules="IsapiModule" scriptProcessor="C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" resourceType="Unspecified" requireAccess="None" preCondition="classicMode,runtimeVersionv2.0,bitness32" />
</handlers>
</system.webServer>
path="*" 是通配符,会影响性能,如果你只重写 .html结尾的文件,则把 path="*"改成 path="*.html"即可
你也可以使用iis7的可视化操作生成以上代码:
站点->处理程序映射->双击->进入新界面后单击右键->添加脚本映射->填写相关参数即可 一定要注意自己的操作系统是32位或64位,选择相应的 aspnet_isapi.dll
在集成模式下,需要删除原来的(不删除的话,整个站点均访问不了,因为集成模式会认为以下的节点是非法的)
<httpModules>
<add type="URLRewriter.ModuleRewriter,URLRewriter" name="URLRewriter" />
</httpModules>
并增加以下代码
<system.webServer>
<modules>
<add name="URLRewriter" type="URLRewriter.ModuleRewriter,URLRewriter" />
</modules>
<handlers>
<add name="all" path="*" verb="*" modules="IsapiModule" scriptProcessor="C:\Windows\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" resourceType="Unspecified" requireAccess="None" preCondition="classicMode,runtimeVersionv2.0,bitness64" />
</handlers>
</system.webServer>
以上是64位操作系统的,如是是32位操作系统改成如下:
<system.webServer>
<modules>
<add name="URLRewriter" type="URLRewriter.ModuleRewriter,URLRewriter" />
</modules>
<handlers>
<add name="all" path="*" verb="*" modules="IsapiModule" scriptProcessor="C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" resourceType="Unspecified" requireAccess="None" preCondition="classicMode,runtimeVersionv2.0,bitness32" />
</handlers>
</system.webServer>