Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O middleware do manipulador de exceção ASP.NET Core não registra mais o diagnóstico de exceções tratadas por IExceptionHandler por padrão.
Versão introduzida
.NET 10 Versão Prévia 7
Comportamento anterior
Anteriormente, o middleware do manipulador de exceções registrava diagnósticos sobre exceções manipuladas por IExceptionHandler.
Os diagnósticos de exceção são:
- Fazendo logon
UnhandledExceptionem ILogger. - Gravando o
Microsoft.AspNetCore.Diagnostics.HandledExceptionevento em Microsoft.Extensions.Logging.EventSource. - Adicionando a tag
error.typeà métricahttp.server.request.duration.
Novo comportamento
A partir do .NET 10, se IExceptionHandler.TryHandleAsync retornar true, o diagnóstico de exceção não será mais registrado por padrão.
Tipo de mudança disruptiva
Esta é uma alteração comportamental.
Motivo da alteração
Usuários do ASP.NET Core deram feedback de que o comportamento anterior foi considerado indesejável. Sua IExceptionHandler implementação informou 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 o diagnóstico ao IExceptionHandler lidar com a exceção. As opções de configuração também estão disponíveis para personalizar o comportamento de diagnóstico de exceção, se necessário.
Ação recomendada
Se quiser que as exceções tratadas continuem a gravar telemetria, use a nova ExceptionHandlerOptions.SuppressDiagnosticsCallback opção:
app.UseExceptionHandler(new ExceptionHandlerOptions
{
SuppressDiagnosticsCallback = context => false;
});
O context retorno de chamada passado inclui informações sobre a exceção, a solicitação e se a exceção foi tratada. O retorno de chamada retorna false para indicar que o diagnóstico não deve ser suprimido, restaurando assim o comportamento anterior.