日期:2014-05-18  浏览次数:20952 次

UrlRewriter怎么在IIS中不起作用
昨天发了个贴子:http://topic.csdn.net/u/20071024/16/7e564963-ad5d-4cbf-b204-d54bd3db321c.html
是关于C#伪静态路径的求助,找了N多资料,终于算搞懂了点.能够在VS2005上直接测试运行.
但是为啥生成网站后,单独放到IIS站点里,就不得行了呢?
是不是还有什么设置没有做?
如:
  在VS2005上访问:http://localhost:4178/WebSite1/find-%e7%9f%bf 可以正常访问.
  但是将生成的网站单独建个网站进行访问的时候就会出现上面这种访问失败,具体如下:
  访问:http://localhsot/website1/a.aspx (这是原文件),能正常访问
  访问:http://localhsot/website1/find-%e7%9f%bf (这是伪静态路径,指向的还是a.aspx)此时就出现"无法找到该页"的提示.
  望大侠告之..
 

------解决方案--------------------
一般的HttpModule方法在你要重写的URL含有.aspx 扩展名或者包含另一个被设置为ASP.NET处理的扩展名的情形下一切都工作,不需要任何特定的服务器配置
但有的时候,你要重写的URL要么拥有一个不为ASP.NET处理的文件扩展名(譬如, .jpg, .gif, 或 .htm),要么根本没有扩展名。
譬如,
http://www.store.com/products/Books
http://www.store.com/products/DVDs
http://www.store.com/products/CDs
在 IIS5 和 IIS6 中,使用ASP.NET处理上面这样的URL不是很容易。 
IIS 5/6 使得在ISAPI扩展(ASP.NET就是这样一个扩展)里非常难以重写这些类型的URLS。
你需要做的是使用ISAPI过滤器在IIS请求管道(request pipeline)的较早期实现重写。
------解决方案--------------------
IIS中检查文件是否存在勾选项中取消