Добрый день!Обработка ASP.NET MVC 404 и IIS7 <httpErrors>
Я использую стратегию для обработки 404 ошибки, как это: Error handling for ASP.NET MVC 2 and IIS 7.0 или это: How can I properly handle 404 in 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?
Заранее благодарен!
UPDATE: По моим тестам, кажется, что моя ошибка погрузочно-разгрузочных работ и мое действие 404 визуализируется, но мне кажется, что IIS видит 404 код ответа (который я установил программно в моем действие 404) и заменить мою страницу с ошибками по умолчанию.
Когда я установил <httpErrors>
У меня было два хита на странице 404: один из обработки исключений в Global.asax
и один из IIS.
Может ли это быть причиной?
У меня была та же проблема, в течение нескольких месяцев, и это работает для меня. Спасибо за обновление! –
Приветствую вас :) – artvolk
Я знаю, что немного поздно, но то, что со мной работало с MVC3, использует exisitingResponse = «Заменить» –