Обработка ASP.NET MVC 404 и IIS7 <httpErrors>
Добрый день!
Я использую стратегию для обработки 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.
Может ли это быть причиной?