Grundsätzlich:
Verwenden Sie IncludeErrorDetailPolicy
stattdessen, wenn CustomErrors
es für Sie nicht gelöst wird (z. B. wenn Ihr ASP.NET-Stack> 2012 ist):
GlobalConfiguration.Configuration.IncludeErrorDetailPolicy
= IncludeErrorDetailPolicy.Always;
Hinweis: Seien Sie vorsichtig, wenn Sie detaillierte Fehlerinformationen zurückgeben, die vertrauliche Informationen an "Hacker" weitergeben können. Siehe Simons Kommentar zu dieser Antwort unten.
TL; DR-Version
Für mich CustomErrors
hat das nicht wirklich geholfen. Es war bereits eingestellt Off
, aber ich bekam immer noch nur eine dürftige an error has occurred
Nachricht. Ich denke, die akzeptierte Antwort stammt von vor 3 Jahren, was heutzutage eine lange Zeit im Web ist. Ich verwende Web API 2 und ASP.NET 5 (MVC 5) und Microsoft hat sich von einer Nur-IIS-Strategie entfernt, während CustomErrors
es sich um altes Skool-IIS handelt;).
Wie auch immer, ich hatte ein Produktionsproblem, das ich vor Ort nicht hatte. Und dann stellte ich fest, dass ich die Fehler auf der Registerkarte "Netzwerk" von Chrome nicht so sehen konnte wie auf meinem Entwicklungscomputer. Am Ende gelang es mir, das Problem zu lösen, indem ich Chrome auf meinem Produktionsserver installierte und dann auf dem Server selbst zu der dortigen App navigierte (z. B. auf 'localhost'). Dann traten detailliertere Fehler mit Stapelspuren und allem auf.
Erst danach fand ich diesen Artikel von Jimmy Bogard (Hinweis: Jimmy ist Herr AutoMapper! ). Das Lustige ist, dass sein Artikel ebenfalls aus dem Jahr 2012 stammt, aber darin erklärt er bereits, dass CustomErrors
dies nicht mehr hilft, sondern dass Sie das ' IncludeErrorDetailPolicy
Fehlerdetail ' ändern können, indem Sie in der globalen WebApi-Konfiguration eine andere festlegen (z. B. WebApiConfig.cs
):
GlobalConfiguration.Configuration.IncludeErrorDetailPolicy
= IncludeErrorDetailPolicy.Always;
Zum Glück erklärt er auch, wie man es einrichtet, dass webapi (2) Ihre CustomErrors
Einstellungen hört . Das ist ein ziemlich vernünftiger Ansatz, mit dem Sie bis 2012 zurückkehren können: P.
Hinweis: Der Standardwert ist 'LocalOnly'. Dies erklärt, warum ich das Problem so lösen konnte, wie ich es beschrieben habe, bevor ich diesen Beitrag gefunden habe. Aber ich verstehe, dass nicht jeder einfach per Fernzugriff zur Produktion und zum Starten eines Browsers gelangen kann (ich weiß, dass ich es meistens nicht konnte, bis ich mich entschied, freiberuflich und DevOps zu arbeiten).