Добрый день!
Я использую стратегию для обработки 404 ошибок, например: Обработка ошибок для ASP.NET MVC 2 и IIS 7.0 или вот так: Как правильно обрабатывать 404 в ASP.NET MVC?
Короче говоря: я обрабатываю 404 как исключение в Global.asax
без добавления каких-либо правил маршрутизации, если исключение составляет 404, я отображаю специальный контроллер \ действие с сообщением об ошибке.
ВклIIS6 работает с сопоставлением подстановочных знаков ASP.NET.На IIS7 в интегрированном режиме мне нужно добавить следующее к Web.config
(где /error/HttpError404
- это мое действие со страницей 404):
<httpErrors>
<remove statusCode="403" subStatusCode="-1" />
<remove statusCode="404" subStatusCode="-1" />
<error statusCode="404" prefixLanguageFilePath="" path="/error/HttpError404" responseMode="ExecuteURL" />
<error statusCode="403" prefixLanguageFilePath="" path="/error/HttpError403" responseMode="ExecuteURL" />
</httpErrors>
Почему?Маршрутизация работает по-разному в интегрированном режиме IIS и сопоставлении подстановочных знаков IIS6?
Заранее спасибо!
ОБНОВЛЕНИЕ: Согласно моим тестам, кажется, что моя обработка ошибок работает и мои 404действие отображается, но кажется, что IIS видит код ответа 404 (который я установил программно в своем действии 404) и заменяет свою страницу ошибками по умолчанию.
Когда я установил <httpErrors>
, я получил два нажатия на страницу 404: один из обработки исключений в Global.asax
и один из IIS.
Может ли это быть причиной?