Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
L’intergiciel du gestionnaire d’exceptions ASP.NET Core n’enregistre plus par défaut les diagnostics pour les exceptions gérées par IExceptionHandler.
Version introduite
.NET 10 Preview 7
Comportement précédent
Auparavant, l’intergiciel du gestionnaire d’exceptions a enregistré des diagnostics sur les exceptions gérées par IExceptionHandler.
Les diagnostics d’exception sont les suivants :
- Connexion
UnhandledExceptionà ILogger. - Écriture de l’événement
Microsoft.AspNetCore.Diagnostics.HandledExceptiondans Microsoft.Extensions.Logging.EventSource. - Ajout de la
error.typebalise à lahttp.server.request.durationmétrique.
Nouveau comportement
À compter de .NET 10, si IExceptionHandler.TryHandleAsync retourne true, les diagnostics d’exception ne sont plus enregistrés par défaut.
Type de changement cassant
Ce changement est un changement de comportement.
Raison de la modification
ASP.NET utilisateurs principaux ont donné des commentaires indiquant que le comportement précédent n’était pas souhaitable. Leur IExceptionHandler implémentation a signalé que l’exception a été gérée, mais que le middleware de gestion des erreurs a toujours enregistré l’erreur dans les données de télémétrie de l’application.
ASP.NET Core suit désormais le comportement attendu par les utilisateurs en supprimant les diagnostics lors IExceptionHandler de la gestion de l’exception. Les options de configuration sont également disponibles pour personnaliser le comportement des diagnostics d’exception si nécessaire.
Action recommandée
Si vous souhaitez que les exceptions gérées continuent d’enregistrer les données de télémétrie, vous pouvez utiliser la nouvelle ExceptionHandlerOptions.SuppressDiagnosticsCallback option :
app.UseExceptionHandler(new ExceptionHandlerOptions
{
SuppressDiagnosticsCallback = context => false;
});
Le context transmis au rappel inclut des informations sur l’exception, la requête et indique si l’exception a été gérée. Le rappel retourne false pour indiquer que les diagnostics ne doivent pas être supprimés, ce qui restaure le comportement précédent.