2

我正在开发一个混合了 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 安装在我发布的开发人员机器和服务器上。

4

1 回答 1

1

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

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

于 2012-01-13T09:07:00.650 回答