繁体   English   中英

路由错误混合Web窗体和MVC

[英]Routing error mixing Web Forms and MVC

我正在使用混合了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。

这是因为IIS6默认不支持无扩展名的url。 您将需要对其进行配置 而且,如果您没有使用ASP.NET 4, 则适合您 如果您不配置它; IIS6不知道/Home/Index必须与aspnet_isapi筛选器关联。 它甚至不知道这是一个ASP.NET应用程序。 这就是为什么在经典的WebForms中,他们使用.aspx扩展名的原因,该扩展名在您安装.NET时与aspnet_isapi筛选器相关联。

在集成管道模式下运行时,IIS7 +可以立即使用无扩展名的url。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM