В основному:
Використовуйте 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 відійшла від стратегії, яка використовується лише для IIS, поки CustomErrors
є старою II- програмою skool;).
У всякому разі, у мене виникли проблеми з виробництвом, яких у мене не було на місцях. А потім виявив, що я не міг бачити помилки на вкладці «Мережа Chrome», як на моїй машині розробки Врешті-решт мені вдалося вирішити це, встановивши Chrome на своєму виробничому сервері, а потім переглянувши програму там на самому сервері (наприклад, на "localhost"). Потім з'явилися більш детальні помилки зі слідами стека і все.
Лише згодом я знайшов цю статтю від Джиммі Богара (Примітка: Джиммі - це містер AutoMapper! ). Найсмішніше, що його стаття також з 2012 року, але в ній він уже пояснює, що CustomErrors
це вже не допомагає, але ви МОЖЕТЕ змінити " IncludeErrorDetailPolicy
Деталі про помилку", встановивши іншу в глобальній конфігурації WebApi (наприклад WebApiConfig.cs
):
GlobalConfiguration.Configuration.IncludeErrorDetailPolicy
= IncludeErrorDetailPolicy.Always;
На щастя, він також пояснює, як налаштувати його, щоб webapi (2) слухав ваші CustomErrors
налаштування. Це досить розумний підхід, і це дозволяє вам повернутися до 2012 року: P.
Примітка. Значення за замовчуванням - "LocalOnly", яке пояснює, чому мені вдалося вирішити проблему так, як я описав, перш ніж знайти цю публікацію. Але я розумію, що далеко не кожен може просто віддалятися до виробництва та запускати браузер (я знаю, що я здебільшого не міг, поки не вирішив перейти на фрілансер AND DevOps).