1
Ich habe meine benutzerdefinierte Fehlerseite eingerichtet, die gut funktionieren:ASP.net fangen Fehler auf Fehlerseite
<customErrors mode="On" redirectMode="ResponseRewrite">
<error statusCode="500" redirect="~/Pages/ErrorPages/500.aspx" />
</customErrors>
Auf 500.aspx
:
Response.ClearContent();
Response.StatusCode = 500;
Exception = Server.GetLastError();
Code.Errors.Error.RecordNewError(ErrorType.InternalException, Exception, Code.Common.GetUserIPAddress().ToString(), HttpContext.Current);
Server.ClearError();
Problem ist, wenn die Fehlerseite einen Fehler wirft selbst erhalten wir einen hässlichen Fehler:
Wie falle ich zurück auf eine grundlegendere benutzerdefinierte Fehlerseite wenn die Fehlerseite selbst wirft einen Fehler?
Eine Möglichkeit wäre es, die Logik in der 500.aspx Seite in einem Try-Catch-Block und in der catch-Anweisung zu wickeln, Umleitung auf eine statische 500.html Seite mit einer allgemeinen Fehlermeldung. – HaukurHaf
@HaukurHaf hat das versucht, wird aber nicht helfen, wenn der Fehler von außerhalb dieser Logik stammt (z. B. global.asax oder die Masterseite) –
Ja, das stimmt. Ich glaube, es ist die beste Vorgehensweise, dynamische Fehlerseiten zu vermeiden. Ich würde empfehlen, dass Sie eine statische HTML-Datei immer als Fehlerseite verwenden. Um den Fehler zu protokollieren (was Ihre aktuelle 500.aspx-Seite so weit macht, wie ich sehen kann), könnten Sie einfach das globale Ereignis Application_OnError in der Datei global.asax verwenden. – HaukurHaf