У меня есть набор customErrors в моем web.config
<customErrors mode="On" defaultRedirect="/Error/GeneralError">
<error statusCode="404" redirect="/Error/NotFound"/>
</customErrors>
Это хорошо работает локально. 404 броски 404. На общем хостинге это подбрасывает стандартный сервер 404 страницы, если я конкретно не установил 404 для указания на/Error/NotFound. Это прекрасно. Теперь это покажет, что пользовательские 404 страницы кроме кода состояния ответа 200. Таким образом, если я пытаюсь бросить Ответ. StatusCode = 404; в моем действии NotFound в ErrorController как это:
public class ErrorController : Controller
{
public ActionResult NotFound()
{
Response.StatusCode = 404;
return View();
}
}
сервер бросает код состояния 500 Внутренняя Ошибка Сервера, но моя страница GeneralError не показывает, просто пустая белая страница без источника.
Я попробовал много различных комбинаций, но я, может казаться, не нахожу, как заставить его показать мои пользовательские 404 страницы наряду с 404 ответами.
Какие-либо идеи?
Интересную информацию я нашел здесь: http://blog.angrypets.com/2008/03/responsetryskip.html
Response.TrySkipIisCustomErrors = true;
Установка TrySkipIisCustomErrors в true после Response.StatusCode = 404; решает проблему.