При использовании ASP.NET MVC2 пустой маршрут не пересылается IIS 6 - PullRequest
1 голос
/ 19 ноября 2010

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

У меня MVC2 работает до определенной степени, я использую следующий код Global.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 = "" }
        );
    }

На первом маршруте я должен был указать {controller} .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, расположенным в корневом каталоге (который выполняется), могу ли я загрузить контроллер Home БЕЗ, используя простой Response.Redirect?

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

Ответы [ 3 ]

1 голос
/ 22 декабря 2010

Тот факт, что вы получаете "Запрещено перечисление каталогов", означает, что isapi filetr не подходит для работы с MVC.

0 голосов
/ 07 марта 2011

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

// Disable IIS looking at physical files and directories
RouteTable.Routes.RouteExistingFiles = true;
0 голосов
/ 19 ноября 2010

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

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

...