Пользовательская страница 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();
}