ASP.NET Core 例外狀況處理常式中介軟體不再記錄預設所處理 IExceptionHandler 例外狀況的診斷。
推出的版本
.NET 10 Preview 7
先前的行為
先前,異常處理常式中介軟體會記錄有關 所處理 IExceptionHandler的異常狀況的診斷。
例外狀況診斷包括:
- 記錄到
UnhandledExceptionILogger. - 將事件寫入
Microsoft.AspNetCore.Diagnostics.HandledExceptionMicrosoft.Extensions.Logging.EventSource。 - 將標籤
error.type新增至http.server.request.duration計量。
新行為
從 .NET 10 開始,如果 IExceptionHandler.TryHandleAsync 傳 true回 ,則預設不會再記錄例外狀況診斷。
破壞性變更的類型
此變更為行為變更。
變更的原因
ASP.NET Core 使用者已提供意見反應,指出先前的行為不受歡迎。 他們的 IExceptionHandler 實作報告已處理例外狀況,但錯誤處理中介軟體仍會在應用程式的遙測中記錄錯誤。
ASP.NET Core 現在會在處理例外狀況時 IExceptionHandler 隱藏診斷,以遵循使用者預期的行為。 如有需要,也可以設定選項來自訂異常狀況診斷行為。
建議的動作
如果您想要處理的例外狀況繼續記錄遙測,您可以使用新 ExceptionHandlerOptions.SuppressDiagnosticsCallback 選項:
app.UseExceptionHandler(new ExceptionHandlerOptions
{
SuppressDiagnosticsCallback = context => false;
});
傳遞至回呼的包含 context 例外狀況、要求的相關資訊,以及是否已處理例外狀況。 回呼會傳回 false ,指出不應隱藏診斷,因此還原先前的行為。