Использование ASP.NET MVC2, пустой маршрут не пересылается IIS 6
-
26-09-2019 - |
Вопрос
Сначала позвольте мне объяснить, что я нахожусь в хостированном решении, и не так много, я могу сделать в способах конфигурации и настройки для 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;