Ошибка маршрутизации при смешивании веб-форм и MVC - PullRequest
2 голосов
/ 13 января 2012

Я работаю над веб-приложением Web Forms со смешанным кодом в MVC. Я следовал инструкциям на этой странице http://www.packtpub.com/article/mixing-aspnet-webforms-and-aspnet-mvc, и он отлично работает на сервере разработчиков VS2010, но при попытке опубликовать его в браузере IIS 6 с поддержкой MVC автоматически не перенаправляется на 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 = "" }
        );
    }

Если я закомментирую вызов RegisterRoutes в методе Application_Start, автоматическое перенаправление на default.aspx сработает, но тогда MVC-компоненты потерпят неудачу.

Мне нужна помощь с настройкой маршрутизации для включения автоматического перенаправления на default.aspx при включении маршрутизации MVC. Детали MVC расположены по определенному пути, например так: myserver / applicationname / mvcparts.

Asp.Net MVC 3 установлен как на компьютере разработчика, так и на сервере, на котором я публикую.

1 Ответ

1 голос
/ 13 января 2012

Это потому, что IIS6 по умолчанию не поддерживает URL без расширений.Вам нужно будет настроить его .И если вы не используете ASP.NET 4, это для вас .Если вы не настроите это;IIS6 не знает, что /Home/Index должен быть связан с фильтром aspnet_isapi.Он даже не знает, что это приложение ASP.NET.Вот почему в классических веб-формах они использовали расширение .aspx, которое связано с фильтром aspnet_isapi при установке .NET.

URL-адреса без расширений поддерживаются IIS7 + "из коробки" при запуске винтегрированный режим конвейера.

...