Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Middleware pro zpracování výjimek v ASP.NET Core už ve výchozím nastavení nezaznamenává diagnostiku pro výjimky zpracované IExceptionHandler.
Verze byla představena
.NET 10 Preview 7
Předchozí chování
Dříve middleware pro obsluhu výjimek zaznamenal diagnostiku o výjimkách, které IExceptionHandler zpracovával.
Diagnostika výjimek:
- Protokolování
UnhandledExceptiondo ILogger. -
Microsoft.AspNetCore.Diagnostics.HandledExceptionZápis události do Microsoft.Extensions.Logging.EventSource. - Přidání značky
error.typedohttp.server.request.durationmetriky
Nové chování
Počínaje verzí .NET 10, pokud IExceptionHandler.TryHandleAsync vrací true, diagnostika výjimek se standardně již nezaznamenává.
Typ zásadní změny
Tato změna je změna chování.
Důvod změny
Uživatelé ASP.NET Core poskytli zpětnou vazbu, že předchozí chování bylo nežádoucí. Jejich IExceptionHandler implementace oznámila, že výjimka byla zpracována, ale middleware zpracování chyb stále zaznamenal chybu v telemetrii aplikace.
ASP.NET Core nyní sleduje chování očekávané uživateli potlačováním diagnostiky při IExceptionHandler zpracování výjimky. Možnosti konfigurace jsou také k dispozici pro přizpůsobení chování diagnostiky výjimek v případě potřeby.
Doporučená akce
Pokud chcete zpracovávat výjimky, abyste mohli dál zaznamenávat telemetrii, můžete použít novou ExceptionHandlerOptions.SuppressDiagnosticsCallback možnost:
app.UseExceptionHandler(new ExceptionHandlerOptions
{
SuppressDiagnosticsCallback = context => false;
});
Předání context zpětnému volání obsahuje informace o výjimce, požadavku a o tom, jestli byla výjimka zpracována. Zpětné volání vrací false, aby označilo, že diagnostika by neměla být potlačena, čímž se obnoví předchozí chování.