Я бился головой о кирпичную стену, пытаясь развернуть приложение MVC на IIS6 ( связанный вопрос )
В настоящее время я удалил сопоставление с подстановочными знаками и пытаюсь заставить работать расширение .mvc. В IIS все настроено правильно, и расширение .mvc указывает на DLL-библиотеку .NET для всех типов глаголов (непроверенная проверка, если существует опция).
Каждый раз, когда я делаю запрос, я получаю только страницу .NET 404. /Home.mvc и /Home.mvc/Index возвращают эту страницу.
Я не внес никаких изменений в стандартный Web.config, и все мои маршруты настроены на эквиваленты без расширений и на основе расширений.
Я ценю, насколько легко эта конфигурация должна быть (звуковой) для всех читателей, у которых она работает, но уверяю вас, я не делаю ничего другого, и моя не будет работать. Я даже пытался развернуть его на другом сервере с IIS6, и там возникали те же проблемы.
Могут ли быть какие-то другие причины, по которым модуль / обработчик маршрутизации полностью пропускает запрос и позволяет ему перейти к стандартной ошибке .NET 404? Странные разрешения?
Для ошибок IIS 404 я обновил пользовательскую настройку ошибок, чтобы она называлась страницей Default.aspx в маршруте сайта. Это страница по умолчанию из бета-шаблона MVC, созданного в Visual Studio, который выполняет следующие действия в коде:
HttpContext.Current.RewritePath(Request.ApplicationPath);
IHttpHandler httpHandler = new MvcHttpHandler();
httpHandler.ProcessRequest(HttpContext.Current);
Это как раз тогда дает мне ошибку из предыдущего поста:
[HttpException (0x80004005): The incoming request does not match any route.]
System.Web.Routing.UrlRoutingHandler.ProcessRequest(HttpContextBase httpContext) +15589
System.Web.Routing.UrlRoutingHandler.ProcessRequest(HttpContext httpContext) +40
System.Web.Routing.UrlRoutingHandler.System.Web.IHttpHandler.ProcessRequest(HttpContext context) +7
......