Я развернул веб-сайт ASP.NET MVC2 на компьютере с Windows Server 2003 под управлением IIS 6. Я использую в основном стандартную маршрутизацию в стандартном проекте MVC:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Products", action = "List", id = UrlParameter.Optional } // Parameter defaults
);
}
Переход к http://localhost/MyApplication берет меня на страницу списка просто отлично.Переход к http://localhost/MyApplication/Products/Details/21 дает мне 404. Эта маршрутизация работала нормально на встроенном сервере разработки в VS2010.
Я поместил в стандартное сопоставление IIS подстановочный знак aspnet_isapi.dll, упомянутое повсеместно -переход на страницу списка раньше не работал, но навигация к чему-либо, кроме маршрута по умолчанию, не работает.
Я бы очень хотел сохранить свои URL без расширений.Кто-нибудь имеет представление о том, почему маршрутизация будет работать для веб-страницы по умолчанию, но не для других?
* Редактировать: только что попытался добавить расширение .aspx, то есть теперь мой маршрут выглядит следующим образом:
routes.MapRoute(
"Default", // Route name
"{controller}.aspx/{action}/{id}", // URL with parameters
new { controller = "Downtime", action = "List", id = UrlParameter.Optional } // Parameter defaults
);
И у него такое же поведение, за исключением того, что на этот раз я получаю страницу asp 404 вместо страницы html 404 ...
* Редактировать 2: повторить попытку, используя следующий маршрут и убедившись, что.mvc был сопоставлен с aspnet_isapi.dll:
routes.MapRoute(
"Default", // Route name
"{controller}.mvc/{action}/{id}", // URL with parameters
new { controller = "Downtime", action = "List", id = UrlParameter.Optional } // Parameter defaults
);
На этот раз я получил «Internet Explorer не может отобразить веб-страницу» в стиле 404.Теперь у меня есть 3 разные ошибки 404 при использовании этих 3 разных методов ...
* Правка 3 Возврат правки: у меня сайт, работающий в IIS 5.1 на Windows XP professional, только с переназначением подстановочного знака навиртуальный каталог, но не дай бог, я смогу запустить его на веб-сервере ...