У меня есть приложение mvc 2, работающее в ii6 в тестовой среде и на производственном сервере.
Среда тестирования работает просто отлично, но после перехода на рабочую страницу на всех страницах, кроме сервера домашней страницы, появляется 404 ошибки.
Я выполнил шаг 2, здесь: http://blog.codeville.net/2008/07/04/options-for-deploying-aspnet-mvc-to-iis-6/, добавил расширение .aspx к маршруту и попробовал сопоставление с подстановочными знаками. Кажется, это не имеет никакого значения.
Я поместил файл диагностики, найденный здесь: http://bradwilson.typepad.com/blog/2010/03/diagnosing-aspnet-mvc-problems.html, в каталог и загрузил его, но он не сообщает об ошибках или проблемах.
Я даже вытер тестовый сервер и переустановил приложение с нуля, настроил сопоставление с подстановочными знаками, и оно работало нормально.
Прямо сейчас страницы маршрутизируются как: Home.aspx/About
и моя таблица маршрутизации выглядит так:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.IgnoreRoute("{*favicon}", new { favicon = @"(.*/)?favicon.ico(/.*)?" });
routes.MapRoute(
"Default", // Route name
"{controller}.aspx/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
routes.MapRoute(
"NewEmployee",
"{controller}.aspx/{action}",
new { controller = "NewEmployee", action = "Index" }
);
routes.MapRoute(
"Admin",
"{controller}.aspx/{action}",
new { controller = "Admin", action = "Index" });
routes.MapRoute(
"AccessMaster",
"{controller}.aspx/{action}/{id}/{subid}",
new { controller = "AccessMaster", action = "Index", id=UrlParameter.Optional,subid=UrlParameter.Optional });
routes.MapRoute(
"Root",
"",
new { controller = "Home", action = "Index", id = "" }
);
}
Я в недоумении. Я делаю что-то неправильно? Что-то не так с сервером?