我正在使用混合在MVC中的Web窗体Web应用程序。我已按照此页http://www.packtpub.com/article/mixing-aspnet-webforms-and-aspnet-mvc中的说明进行操作,并且在VS2010开发人员服务器中工作正常,但当我尝试将其发布到启用MVC的IIS 6浏览器登录后不会自动重定向到default.aspx,我得到404应用程序根目录错误。
我的Global.asax.cs看起来像这样:
protected void Application_Start(object sender, EventArgs e)
{
RegisterRoutes(RouteTable.Routes);
}
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.IgnoreRoute("{resource}.aspx/{*pathInfo}");
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = "" }
);
}
如果我在Application_Start方法中注释掉对RegisterRoutes的调用,则自动重定向到default.aspx会起作用,但MVC部分会失败。
我需要一些帮助来解决如何设置路由以启用MVC路由时自动重定向到default.aspx。 MVC部分位于特定路径下,如下所示:myserver / applicationname / mvcparts。
Asp.Net MVC 3安装在我发布的开发人员计算机和服务器上。
答案 0 :(得分:1)
这是因为默认情况下IIS6不支持无扩展名网址。您需要configure it。如果您不使用ASP.NET 4,this is for you。如果你不配置它; IIS6不知道/Home/Index
必须与aspnet_isapi
过滤器相关联。它甚至不知道这是一个ASP.NET应用程序。这就是为什么在经典的WebForms中,他们在安装.NET时使用与aspnet_isapi过滤器关联的.aspx
扩展名。
在集成管道模式下运行时,IIS7 +支持无扩展URL。