Senden Sie den IIS-HTTP-Fehlercode, ohne den Stacktrace zu senden

Senden Sie den IIS-HTTP-Fehlercode, ohne den Stacktrace zu senden

Ich habe eine ASP.NET-basierte API, die HTTP-Fehlercodes vom Server an den Client senden muss, sobald sie auftreten. Ich möchte jedoch nicht die gesamte detaillierte Standardfehlermeldung mit dem Stacktrace an den Benutzer senden, eine einfache Meldung „Ein Fehler ist aufgetreten“ reicht aus.

Das Standardverhalten von IIS besteht darin, immer http 500 an nicht lokale Clients zu senden. Ich bin so weit gekommen, dass ich detaillierte Fehlermeldungen (mit dem Fehlercode) senden kann. Aber ist es möglich, die Details irgendwie zu deaktivieren?

Wenn nicht, ist es möglich, eine benutzerdefinierte Fehlerdatei hinzuzufügen, die ich für alle Fehler verwenden und trotzdem den spezifischen Fehlercode an den Client senden kann?

Antwort1

Bei einer meiner eigenen MVC-Anwendungen ist mir tatsächlich das Gegenteil passiert. Ich habe benutzerdefinierte Fehlerseiten statt der vollständigen Fehlermeldung erhalten. Ihre Anwendung sollte eine Datei FilterConfig.cs im App_Start enthalten. Diese Datei sollte wie folgt aussehen:

public class FilterConfig
{
    public static void RegisterGlobalFilters(GlobalFilterCollection filters)
    {
        filters.Add(new HandleErrorAttribute());
    }
}

Wenn customErrors aktiviert ist, sollte die freigegebene Ansicht Error.cshtml (~/Views/Shared/Error.cshtml) angezeigt werden, die Sie anpassen können, um so viele oder so wenige Informationen über den Fehler anzuzeigen, wie Sie möchten.

HTH

verwandte Informationen