MVC2 + ASP.NET 4.0 + IIS6 +无扩展名URLS,不再需要通配符映射?

时间:2010-06-19 20:33:50

标签: asp.net-mvc asp.net-mvc-2 iis-6 isapi wildcard-mapping

我注意到asp.net 4.0现在安装了一个顶级的isapi插件(在iis6中),这样它就可以检查每个进入服务器的请求。这应该允许我们使用无扩展名URLS运行MVC应用程序并让aspnet isapi正确处理它们而不需要通配符映射(并避免相关的性能损失)?我还没有发现任何有关此事的文章,也没有时间进行调查。感谢

3 个答案:

答案 0 :(得分:3)

ASP.NET 4.0安装C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll ISAPI筛选器以将传入请求映射到新CLR,但此筛选器未注册为通配符映射,但仅与已知扩展关联。它不会拦截每个传入的请求。如果你想拥有无扩展名的网址,你需要像ASP.NET 2.0一样执行same steps,而是使用新的ISAPI过滤器。

答案 1 :(得分:2)

找到了答案: http://blogs.msdn.com/b/tmarq/archive/2010/06/18/how-to-disable-the-asp-net-v4-0-extensionless-url-feature-on-iis-6-0.aspx

似乎asp.net 4.0中有新功能可以启用无扩展名网址。我需要对此进行更多研究,以找出如何利用它。

基本上它将/eurl.axd/GUID附加到每个路由请求,然后传递给aspnet_isapi.dll进行处理。然后在此时删除eurl.axd。

我遇到的问题是我的Ionics重写器IIRF软件和这个新的.net重写之间的相互作用......它们似乎有时会相互干扰。

答案 2 :(得分:0)

请您查一下这个关于删除eurl.axd的页面,我测试过,它有效! http://www.helicontech.com/forum/15029-ASPNET_40_MVC_and_ISAPI_Rewrite_3.html