В принципе:
IncludeErrorDetailPolicy
Вместо этого используйте, если CustomErrors
это не решает для вас (например, если вы используете ASP.NET> 2012):
GlobalConfiguration.Configuration.IncludeErrorDetailPolicy
= IncludeErrorDetailPolicy.Always;
Примечание. Будьте внимательны, возвращая подробную информацию об ошибке, которая может раскрыть конфиденциальную информацию хакерам. См. Комментарий Саймона к этому ответу ниже.
TL; DR версия
Для меня CustomErrors
это не очень помогло. Это было уже установлено Off
, но я все еще получил только жалкое an error has occurred
сообщение. Я предполагаю, что принятый ответ от 3 лет назад, который является долгое время в веб-слове в настоящее время. Я использую Web API 2 и ASP.NET 5 (MVC 5), и Microsoft отошла от стратегии, CustomErrors
основанной только на IIS, в то время как старый skool IIS;).
В любом случае, у меня была проблема с производством, которой у меня не было на месте. А потом обнаружил, что не вижу ошибок на вкладке «Сеть» Chrome, как на своей машине разработчика. В конце концов мне удалось решить эту проблему, установив Chrome на свой производственный сервер и затем перейдя к приложению на самом сервере (например, на «localhost»). Потом появились более подробные ошибки со следами стека и все.
Только после этого я нашел эту статью от Джимми Богарда (Примечание: Джимми - мистер AutoMapper! ). Самое смешное, что его статья также написана в 2012 году, но в ней он уже объясняет, что CustomErrors
это больше не помогает, но что вы МОЖЕТЕ изменить « IncludeErrorDetailPolicy
Сведения об ошибках», установив другое в глобальной конфигурации WebApi (например WebApiConfig.cs
):
GlobalConfiguration.Configuration.IncludeErrorDetailPolicy
= IncludeErrorDetailPolicy.Always;
К счастью, он также объясняет, как настроить, чтобы webapi (2) слушал ваши CustomErrors
настройки. Это довольно разумный подход, и это позволяет вам вернуться к 2012 году: P.
Примечание. Значение по умолчанию - «LocalOnly», что объясняет, почему я смог решить проблему так, как я описал, до нахождения этого поста. Но я понимаю, что не все могут просто подключиться к производству и запустить браузер (я знаю, что в основном не мог, пока не решил заняться фрилансом и DevOps).