Пользовательская страница 404 не отображается, когда StatusCode не равен 200

В моем web.config файл У меня включены пользовательские ошибки:

<customErrors mode="On" defaultRedirect="~/Error">
    <error redirect="~/Error/NotFound" statusCode="404" />
</customErrors>

мой NotFound действие:

public ActionResult NotFound()
{
    Response.StatusCode = 404;  //no issues when this is not set
    return View();
}

Проблема: эта конфигурация работает нормально на локальном сервере, но когда я перемещаю ее на удаленный сервер, пользовательские страницы 404 не отображаются (отображается 404 IIS по умолчанию), если только код состояния NotFound Действие установлено на 200.

Может ли кто-нибудь объяснить, что происходит?

1 ответ

Решение

Вы также хотите отключить пользовательские ошибки IIS, установив для параметра TrySkipIisCustomErrors значение true.

public ActionResult NotFound()
{
    Response.StatusCode = 404; 
    Response.TrySkipIisCustomErrors = true; <---
    return View();
}
Другие вопросы по тегам