【问题标题】:Routing error mixing Web Forms and MVC混合 Web 窗体和 MVC 的路由错误
【发布时间】:2012-02-09 12:16:09
【问题描述】:

我正在开发一个混合了 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 部分失败。

我需要一些关于如何设置路由以启用自动重定向到 default.aspx 的帮助,同时启用 MVC 路由。 MVC 部分位于特定路径下,如下所示:myserver/applicationname/mvcparts。

Asp.Net MVC 3 安装在我发布的开发人员机器和服务器上。

【问题讨论】:

  • 澄清:所有直接访问带有扩展名的页面(page.aspx(网络表单))都可以正常工作。登录后,浏览器会显示 myserver/myApplication 而不是 myserver/myApplication/default.aspx,就像在我的开发人员机器上那样。这是我得到 404 的地方。当我更新 url 以指向 default.aspx 或其他 aspx 页面时,一切都很好。

标签: asp.net-mvc webforms asp.net-mvc-routing webforms-routing


【解决方案1】:

这是因为 IIS6 默认不支持无扩展名的 url。您需要configure it。如果你没有使用 ASP.NET 4,this is for you。如果你不配置它; IIS6 不知道/Home/Index 必须与aspnet_isapi 过滤器相关联。它甚至不知道这是一个 ASP.NET 应用程序。这就是为什么在经典 WebForms 中,他们在安装 .NET 时使用与 aspnet_isapi 过滤器关联的 .aspx 扩展名。

在集成管道模式下运行时,IIS7+ 开箱即用地支持无扩展网址。

【讨论】:

  • 在您提供的 Haacks 博客链接中,我真的看不到我的问题的解决方案,我在那里读到的是它应该可以工作。他得到了 403,但我得到了 404。.Net 4 已安装。事实上,我的问题是无扩展 url 在我的应用程序中工作,但 defaultDocument,default.aspx 没有。
  • @Riddler777,什么默认文档?在 ASP.NET 应用程序中,您通常没有 default.aspx 文件。
  • defaultDocument在IIS虚拟目录的配置中设置。
  • @Riddler777,是的,我知道它在哪里设置。我的问题是您的 ASP.NET MVC 应用程序中是否有这样的文件 default.aspx
  • 它是一个带有 MVC 的 Web 窗体 Web 应用程序,位于特定文件夹 (myserver/app/mvcparts) 下。在应用程序的根目录中有一个 default.aspx,所以是的。
猜你喜欢
  • 1970-01-01
  • 2016-04-26
  • 2018-08-17
  • 1970-01-01
  • 2017-02-15
  • 1970-01-01
  • 2018-04-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多