asp.net-core
Fehlerbehandlung
Suche…
Umleitung auf benutzerdefinierte Fehlerseite
ASP.NET Core stellt die Middleware für UseStatusCodePages
UseStatusCodePagesWithRedirects
, die verschiedene Erweiterungsmethoden unterstützt. Interessant sind jedoch UseStatusCodePages
und UseStatusCodePagesWithRedirects
:
UseStatusCodePages fügt eine StatusCodePages-Middleware mit den angegebenen Optionen hinzu, mit der nach Antworten mit Statuscodes zwischen 400 und 599 gesucht wird, die keinen Hauptteil haben. Anwendungsbeispiel für Weiterleitung:
app.UseStatusCodePages(async context => { //context.HttpContext.Response.StatusCode contains the status code // your redirect logic });
UseStatusCodePagesWithRedirects fügt der Pipeline eine StatusCodePages-Middleware hinzu. Gibt an, dass Antworten durch Umleiten mit der angegebenen URL-Vorlage für den Standort behandelt werden sollen. Dies kann einen Platzhalter '{0}' für den Statuscode enthalten. Für URLs, die mit '~' beginnen, wird PathBase vorangestellt. Andere URLs werden unverändert verwendet. Zum Beispiel wird folgendes zu ~ / errors / <error_code> umgeleitet (zum Beispiel ~ / errors / 403 für 403 error):
app.UseStatusCodePagesWithRedirects("~/errors/{0}");
Globale Ausnahmebehandlung in ASP.NET Core
UseExceptionHandler kann verwendet werden, um Ausnahmen global zu behandeln. Sie können alle Details eines Ausnahmeobjekts wie Stack Trace, Innere Ausnahme und andere erhalten. Und dann können Sie sie auf dem Bildschirm zeigen. Sie können dies einfach umsetzen.
app.UseExceptionHandler(
options => {
options.Run(
async context =>
{
context.Response.StatusCode = (int)HttpStatusCode.InternalServerError;
context.Response.ContentType = "text/html";
var ex = context.Features.Get<IExceptionHandlerFeature>();
if (ex != null)
{
var err = $"<h1>Error: {ex.Error.Message}</h1>{ex.Error.StackTrace }";
await context.Response.WriteAsync(err).ConfigureAwait(false);
}
});
}
);
Sie müssen dies in configure () der Datei startup.cs einfügen.