甩祸 发表于 2015-11-15 01:03:57

IIS下的URL重写无效问题

使用 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、将应用程序池的托管管理道模式为经典
  

  

  

         版权声明:本文为博主原创文章,未经博主允许不得转载。
页: [1]
查看完整版本: IIS下的URL重写无效问题