Undantagsdiagnostik ignoreras när IExceptionHandler.TryHandleAsync returnerar true

ASP.NET Core-undantagshanterarens mellanvara registrerar inte längre diagnostik för undantag som hanteras av IExceptionHandler som standard.

Version lanserad

.NET 10 Förhandsversion 7

Tidigare beteende

Tidigare registrerade undantagshanteraren mellanprogram diagnostik om undantag som hanteras av IExceptionHandler.

Undantagsdiagnostiken är:

Nytt beteende

Från och med .NET 10 registreras undantagsdiagnostik inte längre som standard om IExceptionHandler.TryHandleAsync returnerar true.

Typ av brytande ändring

Den här ändringen är en beteendeförändring.

Orsak till ändring

ASP.NET Core-användare har gett feedback om att det tidigare beteendet var oönskat. Deras IExceptionHandler-implementation rapporterade att undantaget hanterades, men felhanteringsmiddleware registrerade fortfarande felet i appens telemetri.

ASP.NET Core följer nu det beteende som användarna förväntar sig genom att ignorera diagnostik när IExceptionHandler de hanterar undantaget. Konfigurationsalternativ är också tillgängliga för att anpassa beteendet för undantagsdiagnostik om det behövs.

Om du vill att hanterade undantag ska fortsätta att registrera telemetri kan du använda det nya alternativet ExceptionHandlerOptions.SuppressDiagnosticsCallback.

app.UseExceptionHandler(new ExceptionHandlerOptions
{
    SuppressDiagnosticsCallback = context => false;
});

Det context som skickas till återanropet innehåller information om undantaget, begäran och om undantaget hanterades. Återanropet returnerar false för att indikera att diagnostik inte ska ignoreras, vilket återställer det tidigare beteendet.

Berörda API:er