IIS 7.5 не принимает к сведению customErrors для 404, возвращенных приложением MVC 3 - PullRequest
5 голосов
/ 24 февраля 2011

Я запускаю свое приложение MVC 3 (недавно обновленное с 2) на IIS 7.5 (Win 7 64bit) с интегрированным пулом конвейерных приложений .NET 4.0 и имею следующую настройку в web.config:

<customErrors mode="On" defaultRedirect="~/Problem/Oops" redirectMode="ResponseRedirect">
    <error statusCode="404" redirect="~/Problem/NotFound" />
</customErrors>

Если метод действия на контроллере генерирует исключение для сервера и, следовательно, генерирует код ошибки 500, он правильно отправляет браузер на URL-адрес перенаправления по умолчанию.

Однако, если мое действие намеренно возвращает HttpNotFoundResult через HttpNotFound() Я получаю страницу ошибки IIS 7.5 404.0, а не ту, которая указана в моем файле web.config.

Если я ввожу URL, которого нет в моем приложении, например http://localhost/MyApp/FOO, тогда япоказать страницу, как указано в web.config.

У кого-нибудь есть идеи, почему я не перенаправляюсь на свою страницу ошибки 404 при использовании HttpNotFound ()?

Ответы [ 2 ]

6 голосов
/ 23 февраля 2012

Пожалуйста, попробуйте следующий синтаксис вместо вызова HttpNotFound и дайте мне знать результат;)

throw new HttpException(404, "NotFound");
0 голосов
/ 14 апреля 2011

Вы пробовали установить Response.TrySkipIisCustomErrors = true;?

(см. http://blog.janjonas.net/2011-04-13/asp_net-prevent-iis_75_overriding-custom-error-page-iis-default-error-page)

...