Я запускаю свое приложение 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 ()?