【发布时间】:2011-05-12 08:36:06
【问题描述】:
我在运行 IIS 6 的 Windows Server 2003 机器上部署了一个 ASP.NET MVC2 网站。 我在标准 MVC 项目中几乎使用了默认路由:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Products", action = "List", id = UrlParameter.Optional } // Parameter defaults
);
}
导航到http://localhost/MyApplication 将我带到列表页面就好了。导航到http://localhost/MyApplication/Products/Details/21 给了我一个 404。这个路由在 VS2010 的内置开发服务器上运行良好。
我已经把提到的标准 IIS 通配符 aspnet_isapi.dll 映射放在了整个地方 - 在我之前导航到列表页面不起作用 - 但是导航到默认路由以外的任何地方都被破坏了。
我真的很想保留我的无扩展名网址。有没有人知道为什么路由适用于默认网页,但没有其他人?
*编辑:刚刚尝试添加 .aspx 扩展名,即现在我的路线如下所示:
routes.MapRoute(
"Default", // Route name
"{controller}.aspx/{action}/{id}", // URL with parameters
new { controller = "Downtime", action = "List", id = UrlParameter.Optional } // Parameter defaults
);
它具有相同的行为,除了这次我得到的是 asp 404 页面而不是 html 404 页面......
*编辑 2:使用以下路线再次尝试并确保 .mvc 已映射到 aspnet_isapi.dll:
routes.MapRoute(
"Default", // Route name
"{controller}.mvc/{action}/{id}", // URL with parameters
new { controller = "Downtime", action = "List", id = UrlParameter.Optional } // Parameter defaults
);
这次我得到了一个“Internet Explorer 无法显示网页”的 404 样式页面。我现在使用这 3 种不同的方法得到了 3 种不同的 404 错误...
*Edit 3 编辑返回:我的站点在 Windows XP Professional 上的 IIS 5.1 中运行,虚拟目录上只有一个通配符重新映射,但我不能让它在网络服务器上运行...
【问题讨论】:
标签: asp.net-mvc iis-6 asp.net-mvc-routing default