Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
O middleware do manipulador de exceções ASP.NET Core não registra mais diagnósticos para exceções tratadas por IExceptionHandler por predefinição.
Versão introduzida
.NET 10 Prévia 7
Comportamento anterior
Anteriormente, o middleware do manipulador de exceções registrava diagnósticos sobre exceções manipuladas pelo IExceptionHandler.
Os diagnósticos de exceção são:
- Registando
UnhandledExceptionem ILogger. - Escrevendo o evento
Microsoft.AspNetCore.Diagnostics.HandledExceptionem Microsoft.Extensions.Logging.EventSource. - Adicionar a tag
error.typeà métricahttp.server.request.duration.
Novo comportamento
A partir do .NET 10, se IExceptionHandler.TryHandleAsync retornar true, os diagnósticos de exceção não serão mais registrados por padrão.
Tipo de mudança disruptiva
Esta alteração é de natureza comportamental .
Motivo da mudança
ASP.NET Os usuários principais deram feedback de que o comportamento anterior era indesejável. Sua IExceptionHandler implementação relatou que a exceção foi tratada, mas o middleware de tratamento de erros ainda registrou o erro na telemetria do aplicativo.
ASP.NET Core agora segue o comportamento esperado pelos usuários, suprimindo diagnósticos quando IExceptionHandler lida com a exceção. As opções de configuração também estão disponíveis para personalizar o comportamento do diagnóstico de exceções, se necessário.
Ação recomendada
Se quiser que as exceções tratadas continuem a gravar a telemetria, você pode usar a nova ExceptionHandlerOptions.SuppressDiagnosticsCallback opção:
app.UseExceptionHandler(new ExceptionHandlerOptions
{
SuppressDiagnosticsCallback = context => false;
});
O context passado para o callback inclui informações sobre a exceção, a solicitação e se a exceção foi ou não tratada. A rotina de retorno devolve false para indicar que os diagnósticos não devem ser suprimidos, restaurando assim o comportamento anterior.