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

时间:2009-12-03 21:15:03

标签: asp.net-mvc iis routing

我不确定我的头衔是否足够准确。我正在尝试为我的网站制作SEO URL,这是在ASP.NET MVC中开发的。我将路线配置为包括:

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.

这是路由问题还是其他问题?

1 个答案:

答案 0 :(得分:2)

这是一个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