Невозможно получить httpErrors для отображения желтого экрана смерти с подробностями
Я просмотрел много сообщений об использовании httpErrors и считаю, что в моем проекте есть более глубокая проблема или, по крайней мере, мое понимание.
Недавно мы перешли от использования customErrors к использованию HttpErrors. Ошибка Custom показывается нормально, но в случае ошибки я вижу только синий экран IIS (в котором нет информации об ошибке).
С тех пор я пытался получить пользовательскую страницу ошибки удаленно и YSOD локально, но безуспешно.
Я добавил "Response.TrySkipIisCustomErrors = true;" в Application_Error в Global.asax.cs, но это, похоже, не имеет значения. Кроме того, проект использует как ASP .NET, так и MVC, не уверен, что это имеет значение.
Я играл с существующим Response и errorMode, и вот результаты, которые я видел: (дайте мне знать, если мое форматирование не имеет смысла)
[существующий ответ | errorMode | remoteResult | localResult]
| Заменить | подробный LocalOnly | Правильная ошибка страницы | IIS синий экран
| Заменить | Custom | Правильная ошибка страницы | Правильная ошибка страницы
| PassThrough | подробный LocalOnly | YSOD | YSOD
| Авто | Custom | YSOD | YSOD
| Авто | подробныйМестно только | YSOD | YSOD
Вот мой webconfig:
<httpErrors existingResponse="Auto" errorMode="Custom">
<remove statusCode="404" subStatusCode="-1" />
<error statusCode="404" subStatusCode="-1" prefixLanguageFilePath="" path="404.html" responseMode="File" />
<remove statusCode="500" subStatusCode="-1" />
<error statusCode="500" subStatusCode="-1" prefixLanguageFilePath="" path="500.html" responseMode="File"/>
</httpErrors>
Global.asax.cs
protected void Application_Error(object sender, EventArgs e)
{
Response.TrySkipIisCustomErrors = true;
Exception ex = Server.GetLastError().GetBaseException();
LogProvider.Log(LogProvider.LogLevels.Error, "Global Error", ex);
}
Спасибо за помощь.