UrlRewriter的一个问题
使用UrlRewriter时候发现一个问题,采用VS开发服务器的情况下,是能起作用的,可以对地址进行正确重写
不过因为开发需要项目采用的是在IIS Web服务器的的方式测试
结果就不行了,明显的表现是压根不加载UrlRewriter模块(将UrlRewriter的源码项目加入到解决方案中,在VS开发服务器状态下调试能命中中断,IIS模式下就不行了)
各种Google,百度,没一个靠谱的,而且都是抄来抄去
找到一篇关于在win7下设置的文章,结果也是没有效果,文章里的UrlRewriter版本老了
不过倒是意外发现了问题所以,在于web.config中的配置写法上。
http://urlrewriter.net/index.php/support/configuration这里的写法必须将IIS运行在经典模式下。而且runAllManagedModulesForAllRequests这个属性在net4.0下的写法是不对的
还需要添加配置如下
<system.webServer> <validation validateIntegratedModeConfiguration="false" /> <modules runAllManagedModulesForAllRequests="true"> <add type="Intelligencia.UrlRewriter.RewriterHttpModule, Intelligencia.UrlRewriter" name="UrlRewriter" /> </modules> </system.webServer>这样的配置则可以VS开发服务器和IIS开发服务器两种模式在集成下都正常运行。