IIS下的URL重写无效问题

时间:2022-11-26 17:43:31
使用 UrlRewriter.dll 实现的URL重写在 VS2008中测试通过,但在IIS下无效,返回404

原因: 主要是IIS应用程序扩展名映射,iis的工作流程应该是遇到.aspx扩展名,交给.net处理,然后才能调用httpModules进行       url映射,如没有aspx扩展名,iis会直接当成文件架,返回404错误了;而vs2008里的调试web服务器把所有的请求都发给       了.net处理,所以成功.

处理办法: 先把IIS应用程序池的托管管理道模式为集成(为了可以做第3,4步)
           首先在IIS中的站点里,找到处理程序映射。双击进去
           1、添加脚本映射(路径:*.html 可执行文件%windir%Microsoft.NETFrameworkv2.0.50727aspnet_isapi.dll 名称:任意,比如Html )
           2、添加通配符脚本映射(路径:* 可执行文件:C:\Windows\Microsoft.NET\Frameworkv2.0.\50727\aspnet_isapi.dll 名称:任意,比如All)
           3、托管处理程序映射(路径:*.html 可执行文件:System.Web.UI.PageHandlerFactory 名称 任意 比如Html-Integrate)
           4、IIS中找到模块(双击进去)-->添加托管模块---->(名称:任意 如All 类型:URLRewriter.ModuleRewrite把 仅针对向asp.net 应用程序或托管处理程序发出请求调用 勾上

           5、将应用程序池的托管管理道模式为经典