Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die ASP.NET Core-Ausnahmebehandlungs-Middleware zeichnet standardmäßig keine Diagnosedaten mehr für Ausnahmen auf, die von IExceptionHandler behandelt werden.
Eingeführte Version
.NET 10 Preview 7
Vorheriges Verhalten
Früher hat die Middleware des Exception Handlers Diagnoseinformationen zu den durch IExceptionHandler behandelten Ausnahmen aufgezeichnet.
Die Ausnahmediagnose sind:
- Protokollieren von
UnhandledExceptionnach ILogger. - Schreiben des Ereignisses
Microsoft.AspNetCore.Diagnostics.HandledExceptionin Microsoft.Extensions.Logging.EventSource. - Hinzufügen des
error.typeTags zurhttp.server.request.durationMetrik.
Neues Verhalten
Ab .NET 10 gilt: Wenn IExceptionHandler.TryHandleAsynctrue zurückgibt, werden Ausnahmediagnosen standardmäßig nicht mehr aufgezeichnet.
Art der einschneidenden Änderung
Diese Änderung ist eine Verhaltensänderung.
Grund für Änderung
ASP.NET Core-Benutzer haben Feedback gegeben, dass das vorherige Verhalten nicht erwünscht war. Die IExceptionHandler Implementierung berichtete, dass die Ausnahme behandelt wurde, jedoch zeichnete die Fehlerbehandlungs-Middleware weiterhin den Fehler in der Telemetrie der App auf.
ASP.NET Core folgt nun dem von Benutzern erwarteten Verhalten, indem die Diagnose unterdrückt wird, wenn IExceptionHandler eine Ausnahme behandelt. Konfigurationsoptionen stehen auch zur Verfügung, um das Verhalten der Ausnahmediagnose bei Bedarf anzupassen.
Empfohlene Aktion
Wenn Sie weiterhin Telemetriedaten bei behandelten Ausnahmen aufzeichnen möchten, können Sie die neue Option ExceptionHandlerOptions.SuppressDiagnosticsCallback verwenden:
app.UseExceptionHandler(new ExceptionHandlerOptions
{
SuppressDiagnosticsCallback = context => false;
});
Die an den Callback übergebenen Daten enthalten Informationen zur Ausnahme, zur Anforderung und darüber, ob die Ausnahme behandelt wurde. Der Rückruf gibt false zurück, um anzugeben, dass die Diagnose nicht unterdrückt werden soll, wodurch das vorherige Verhalten wiederhergestellt wird.