Я видел несколько похожих вопросов на StackOverflow и на других сайтах, но ничего, что могло бы решить проблему, с которой я столкнулся.
Я пытаюсь настроить сайт так, чтобы он возвращал код состояния 500 и настраиваемую страницу ошибок (статический файл HTML) для ошибок ASP.NET, которые обычно возвращают 500, где customErrors установлен на «Выкл.», А код состояния 404 для страниц что наша система сообщает, что она не найдена (страница 404 не является статической страницей, установленной через IIS, она создается нашей системой CMS).
Я на полпути, но я наткнулся на кирпичную стену.
В настоящее время я могу вернуть правильный код состояния 404, когда наша система возвращает страницу с кодом состояния 404, но теперь я не могу вернуть код состояния 500 для ошибок сервера ASP.NET. Я справился с этим, установив Response.TrySkipIisCustomErrors = true. Однако мои 500 ошибок оказались более сложными. Если я удалю раздел конфигурации customErrors из своего web.config, я получу ошибку 500, но это уродливый ASP.NET YSOD. Я вообще не могу заставить это указывать на настраиваемую страницу, использующую IIS, независимо от того, какие настройки я использую для раздела конфигурации httpErrors и независимо от того, что я установил через графический интерфейс IIS. Если я снова добавлю раздел customErrors, я получу страницу с настраиваемой ошибкой, как и ожидал, но получаю ошибку 200 или 302 (в зависимости от значения атрибута redirectMode).
У кого-нибудь есть идеи?
Что касается раздела конфигурации httpErrors, я пробовал следующее:
Установка errorMode на «Custom» и указание моего статического содержимого для ошибок с statusCode «500» и subStatusCode «-1» (сначала удаление существующей ошибки 500). Установка errorMode на «Подробный» и указание моего статического содержимого для ошибок с statusCode «500» и subStatusCode «-1» (сначала удаление существующей ошибки 500) Установка existingResponse = «PassThrough» для обоих параметров конфигурации выше.