Использование ASP.NET MVC2, пустой маршрут не пересылается IIS 6

StackOverflow https://stackoverflow.com/questions/4226793

Вопрос

Сначала позвольте мне объяснить, что я нахожусь в хостированном решении, и не так много, я могу сделать в способах конфигурации и настройки для IIS 6.

У меня MVC2 работает в определенной степени, я использую следующий глобальный код. ASAX:

    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            "Default",
            "{controller}.aspx/{action}/{id}",
            new { action = "Index", id = "" }
        );

        routes.MapRoute(
            "Root",
            "",
            new { controller = "Default", action = "Index", id = "" }
        );
    }

В первом маршруте мне пришлось указать {контроллер} .aspx, из-за IIS 6, не имею в состоянии выполнить код без ASPX (или что-то вроде этого, не совсем уверен).

Что в порядке, следующие работы: HXXP: ///mysite.com/home.aspx, hxxp: //mysite.com/projects.aspx, HXXP: //mysite.com/contact.aspx

которые все контроллеры, и я также могу запускать свои уважаемые действия.

Проблема в том, что я не могу правильно сделать пустой URL (т.е. hxxp: //mysite.com/), он дает мне ошибку «список каталогов отказано».

Вопрос, который у которого у меня есть с файлом default.aspx, расположенным в root (который выполняет), могу ли я загрузить домашний контроллер без использования простого ответа.redirect?

Спасибо, Мэтью

Это было полезно?

Решение

Тот факт, что вы получаете «Список справочников каталогов» означает, что FileTR ISAPI не совпадает с работой с MVC.

Другие советы

Тот факт, что вы получаете «Листинг каталогов, запрещенные» означает, что у вас нет документа по умолчанию, и поэтому сервер пытается показать список файлов в корневой папке.

Обновите документ по умолчанию для чего-то вроде «По умолчанию .aspx». Ваш провайдер хостинга должен иметь вариант для этого. Это очень распространено.

Вы можете отключить это поведение на IIS6 и IIS7

// Disable IIS looking at physical files and directories
RouteTable.Routes.RouteExistingFiles = true;
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top