ASP.NET MVC的IIS路由配置错误?

问题描述:

我不确定我的标题是否足够准确。我正在尝试为ASP.NET MVC中开发的我的网站制作SEO网址。我配置我的路线包括:ASP.NET MVC的IIS路由配置错误?

routes.MapRoute(
       "Default",               // Route name 
       "{controller}/{action}/{id}/{seo}",         // URL with parameters, SEO will up completely optional and used for strings to provide Search Engine Optimization. 
       new { controller = "Home", action = "Index", id = "", seo ="" }  // Parameter defaults 
      ); 

在我的机器,一个链接,如:

http://localhost:1048/Home/Post/96/Firefighting+ATV+Concept+Twin+Water+Cannons+Gull

工作正常,但一旦我发布到服务器(Windows 2008 R2 IIS),它不起作用。例如,链接:

http://www.otakuwire.net/Home/Post/96/Firefighting+ATV+Concept+Twin+Water+Cannons+Gull

给了我404

这是一个路由的问题,或者一些其他的问题?

+0

什么版本的.NET是配置为使用服务器? – Oded 2009-12-03 21:43:48

这是一个IIS问题,而不是路由。 IIS7在处理URL中的加号+方面很严格。简单的解决方法是使用破折号-而不是像其他人一样,或者大胆地使用空格字符(在IE地址栏中,这个字符看起来很可怕)。

在ServerFault他们提出了一种基于配置的解决方案,让+符号: https://serverfault.com/questions/76013/iis6-vs-iis7-and-iis7-5-handling-urls-with-plus-sign-in-base-not-querystri

+0

是的,您实际收到404实际上是,这是IIS请求过滤功能返回的。它会阻止几种网址格式,包括您展示的网址。 – 2009-12-03 22:20:09