Vue d'ensemble du traçage ASP.NET

Mise à jour : novembre 2007

Le traçage ASP.NET vous permet de consulter des informations de diagnostic concernant une seule demande de page ASP.NET. Le traçage ASP.NET permet de suivre le chemin d'exécution d'une page, d'afficher des informations de diagnostic au moment de l'exécution et de déboguer votre application. Le traçage ASP.NET peut être intégré au traçage de niveau système pour fournir plusieurs niveaux de sortie de traçage dans des applications distribuées et multiniveaux.

Cette rubrique contient les sections suivantes :

  • Fonctionnalités

  • Contexte

  • Exemples de code

  • Référence de Classe

Fonctionnalités

Le traçage ASP.NET offre les fonctionnalités suivantes :

  • Debugging statments   Vous pouvez écrire des instructions de débogage dans votre code sans avoir à les supprimer de votre application lors de son déploiement sur des serveurs de production. Vous pouvez également écrire des variables ou des structures sur une page et effectuer le traçage du chemin d'exécution de votre page ou de votre application.

  • Integrated tracing functionality   Vous pouvez router des messages émis par la classe System.Diagnostics.Trace vers la sortie de traçage ASP.NET, et inversement (messages émis par le traçage ASP.NET routés vers System.Diagnostics.Trace). Vous pouvez également transférer des événements d'instrumentation ASP.NET à System.Diagnostics.Trace. Pour plus d'informations, consultez Procédure pas à pas : intégration du traçage ASP.NET avec le traçage System.Diagnostics.

  • Programmatic access to trace messages   Vous pouvez accéder à des messages de trace et les manipuler à partir de votre code, afin de bénéficier d'un contrôle plus performant sur le format de ces messages ou pour un traitement supplémentaire souhaité.

  • Application-level tracing   L'option de traçage au niveau de l'application vous permet de consulter les données de traçage les plus récentes disponibles sans redémarrer une session de traçage ni augmenter la quantité de données de traçage que le serveur doit stocker. Les données de traçage les plus récentes s'affichent, tandis que les données de traçage plus anciennes sont ignorées.

Retour au début

Contexte

Le traçage ajoute des informations de diagnostic et des messages de traçage personnalisés à la sortie de la page, puis envoie ces informations au navigateur qui effectue la demande. Vous pouvez éventuellement visualiser ces informations à partir d'une visionneuse de trace séparée (Trace.axd) qui affiche les informations de traçage pour chaque page dans une application Web ASP.NET. Les informations de traçage peuvent vous aider à rechercher des erreurs ou des résultats non désirés lors du traitement par ASP.NET d'une demande de page.

Vous pouvez configurer des pages individuelles pour afficher des informations de traçage. Vous pouvez également configurer le fichier Web.config de l'application afin que toutes les pages affichent des informations de traçage sauf celles dont le traçage a été explicitement désactivé. La configuration du traçage au niveau de l'application est utile car elle vous évite d'avoir à modifier les pages individuellement afin d'activer et de désactiver le traçage sur celles-ci.

Les instructions de traçage sont traitées et affichées uniquement lorsque le traçage est activé. Vous pouvez contrôler l'affichage du traçage sur une page, sur une visionneuse de trace ou sur les deux. Pour plus d'informations sur l'activation du traçage pour une page, consultez Comment : activer le traçage d'une page ASP.NET. Pour plus d'informations sur l'activation du traçage pour une application, consultez Comment : activer le traçage d'une application ASP.NET.

Traçage ASP.NET au niveau de l'application

Pour activer le traçage au niveau de l'application, utilisez l'élément trace dans le fichier Web.config. Lorsque vous activez le traçage au niveau de l'application, ASP.NET collecte les informations de traçage pour chaque demande faite à l'application, jusqu'au nombre maximal de demandes que vous spécifiez. Le nombre de demandes par défaut est de 10. Lorsque la visionneuse de trace atteint sa limite de demandes, l'application arrête de stocker les demandes de trace. Vous pouvez configurer le traçage de sorte à stocker les données de traçage les plus anciennes (en ignorant les éléments plus récents) ou les informations de traçage les plus récentes (en ignorant les éléments plus anciens).

Remarque :

Lorsque vous activez le traçage pour l'application entière dans le fichier Web.config, les informations de traçage sont collectées et traitées pour chaque page de l'application. Pour substituer les paramètres définis au niveau de l'application, affectez à l'attribut Trace dans la directive @ Page la valeur false. Les instructions Write ou Warn que vous incluez dans le code d'une page sont stockées et retournées à la visionneuse de trace uniquement.

Affichage des informations de traçage

Vous pouvez visualiser des informations de trace en bas de chaque page. Vous pouvez également utiliser la visionneuse de trace (Trace.axd) pour consulter des informations de traçage collectées et mises en cache par ASP.NET lorsque le traçage est activé. Pour plus d'informations sur les éléments inclus dans l'affichage du traçage, consultez Lecture des informations de traçage ASP.NET, plus loin dans cette rubrique.

Si vous souhaitez que les informations de traçage apparaissent à la fin de la page à laquelle elles sont associées, vous pouvez affecter à l'attribut PageOutput de l'élément trace la valeur true. Si vous activez le traçage au niveau de l'application mais ne souhaitez pas afficher les informations de traçage sur certaines pages, vous pouvez affecter la valeur false à l'attribut Trace dans la directive @ Page des pages concernées. Pour plus d'informations sur la configuration d'une application ASP.NET, consultez Vue d'ensemble de la configuration ASP.NET.

Par défaut, le traçage au niveau de l'application peut être affiché seulement sur l'ordinateur du serveur Web local. Pour rendre des informations de traçage de niveau application visibles à des ordinateurs distants, vous pouvez affecter à l'attribut LocalOnly de l'élément trace la valeur false.

Remarque :

Pour préserver la sécurité de votre application Web, utilisez la fonctionnalité de traçage distant uniquement lors du développement ou du déploiement de votre application. Assurez-vous de désactiver cette fonctionnalité avant de transférer votre application à des serveurs Web de production. Pour ce faire, affectez à l'attribut LocalOnly la valeur true dans le fichier Web.config.

L'exemple suivant illustre la configuration du traçage d'une application qui permet de collecter des informations de traçage pour jusqu'à 40 demandes. Cette configuration permet également aux navigateurs des ordinateurs autres que le serveur d'afficher la visionneuse de trace.

<configuration>
  <system.web>
    <trace enabled="true" requestLimit="40" localOnly="false" />
  </system.web>
</configuration>

Écriture de messages de trace ASP.NET personnalisés

Vous pouvez ajouter des informations de traçage personnalisées à l'affichage du traçage sur une page ASP.NET ou dans le journal des traces. Vous pouvez consulter les informations de traçage écrites dans le journal des traces à l'aide de la visionneuse de trace. Pour plus d'informations, consultez Comment : afficher des informations de traçage ASP.NET avec la visionneuse de trace.

Vous pouvez écrire des informations de traçage à l'aide des méthodes Warn ou Write de la classe TraceContext. Les deux méthodes se distinguent par la présence d'un texte en rouge dans un message écrit avec la méthode Warn.

L'exemple suivant montre comment utiliser la classe TraceContext pour afficher des informations de traçage en bas d'une page ASP.NET. Une exception différente est levée pour chaque contrôle LinkButton qui a provoqué la publication. Le message d'erreur utilisé pour initialiser l'instance ArgumentException ou InvalidOperationException figure dans le journal des traces.

<%@ Page Language="VB" Trace="true" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

<script >

  Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)

    Try
      If (IsPostBack) Then

        Select Case Request.Form("__EVENTTARGET")
          Case "WarnLink"
            Throw New ArgumentException("Trace warn.")
          Case "WriteLink"
            Throw New InvalidOperationException("Trace write.")
          Case Else
            Throw New ArgumentException("General exception.")
        End Select  
      End If
    Catch ae As ArgumentException
      Trace.Warn("Exception Handling", "Warning: Page_Load.", ae)
    Catch ioe As InvalidOperationException
      Trace.Write("Exception Handling", "Exception: Page_Load.", ioe)
    End Try
  End Sub
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head >
    <title>Trace Example</title>
</head>
<body>
    <form id="form1" >
    <div>
      <asp:LinkButton id="WriteLink" 
                      
                      text="Generate Trace Write" />
      <asp:LinkButton id="WarnLink"
                      
                      text="Generate Trace Warn" />
    </div>
    </form>
</body>
</html>
<%@ Page Language="C#" Trace="true"  %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

<script >
void Page_Load(object sender, EventArgs e)
{
    try {
      if (IsPostBack)
      {

        switch (Request.Form["__EVENTTARGET"])
        {
          case "WarnLink":
            throw new ArgumentException("Trace warn.");
            break;
          case "WriteLink":
            throw new InvalidOperationException("Trace write.");
            break;
          default:
            throw new ArgumentException("General exception.");
            break;          
        }
      }
    }
    catch (ArgumentException ae) {    
        Trace.Warn("Exception Handling", "Warning: Page_Load.", ae);
    }
    catch (InvalidOperationException ioe) {    
        Trace.Write("Exception Handling", "Exception: Page_Load.", ioe);
    }
}

</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head >
    <title>Trace Example</title>
</head>
<body>
    <form id="form1" >
    <div>
      <asp:LinkButton id="WriteLink" 
                      
                      text="Generate Trace Write" />
      <asp:LinkButton id="WarnLink"
                      
                      text="Generate Trace Warn" />
    </div>
    </form>
</body>
</html>

Lecture des informations de traçage ASP.NET

Vous pouvez afficher des informations de traçage ajoutées en bas d'une page ASP.NET ou dans la visionneuse de trace. Dans les deux cas, les informations affichées sont identiques. ASP.NET organise les informations de traçage dans une série de tableaux. Pour plus d'informations sur l'affichage des informations de traçage sur une page, consultez Comment : activer le traçage d'une page ASP.NET. Pour plus d'informations sur l'affichage des informations de traçage dans la visionneuse de trace, consultez Comment : afficher des informations de traçage ASP.NET avec la visionneuse de trace.

Les informations de traçage apparaissent dans l'ordre suivant.

Détails de la demande

La section Détails de la demande affiche des informations générales à propos de la demande actuelle et de la réponse.

Valeur

Description

ID de la session

Identification de la session pour la demande spécifiée.

Heure de la demande

Heure à laquelle la demande a été émise.

Codage de la demande

Codage de caractères pour la demande.

Type de la demande

Méthode HTTP (GET ou POST).

Code d'état

Valeur du code d'état associée à la réponse. Pour plus d'informations, consultez la norme RFC 2616 disponible sur le site Web du World Wide Web Consortium.

Codage de réponse

Codage de caractères pour la réponse.

Informations de traçage

La section Informations de traçage affiche le flux d'événements au niveau de la page. Si vous avez créé des messages de trace personnalisés, les messages sont également affichés dans la section Informations de traçage.

Valeur

Description

Catégorie

Catégorie de trace personnalisée spécifiée dans un appel à la méthode Warn ou Write, si elle existe.

Message

Message de trace personnalisé spécifié dans un appel à la méthode Warn ou Write, s'il existe.

À partir des premiers

Temps écoulé, en secondes, depuis le traitement du premier message de trace. Le premier message de trace apparaît au haut de la liste.

À partir des derniers

Temps écoulé, en secondes, entre le traitement du message de trace actuel et celui du message de trace précédent.

Arborescence du contrôle

La section Arborescence du contrôle affiche des informations sur les contrôles serveur ASP.NET créés dans la page.

Valeur

Description

ID de contrôle

Identification du contrôle. Si vous n'avez pas spécifié de propriété ID pour le contrôle, ASP.NET génère une propriété ID à l'aide de la propriété UniqueID.

Type

Type qualifié complet du contrôle.

Taille en octets du rendu

Taille, en octets, du contrôle rendu (y compris les contrôles enfants). Il s'agit de la taille réelle du code HTML, XML ou autre format qui est envoyé au navigateur.

Taille en octets de ViewState

Taille, en octets, de l'état d'affichage du contrôle (sans les contrôles enfants). Pour plus d'informations, consultez Vue d'ensemble de la gestion d'état ASP.NET.

Taille en octets de ControlState

Taille, en octets, de l'état de contrôle du contrôle (sans les contrôles enfants). Pour plus d'informations, consultez Vue d'ensemble de la gestion d'état ASP.NET.

État de session

La section État de session affiche des informations sur les valeurs stockées dans l'état de session, le cas échéant. Pour plus d'informations, consultez Vue d'ensemble de l'état de session ASP.NET.

Valeur

Description

Clé de la session

Clé des données stockées dans l'état de session, le cas échéant.

Type

Type qualifié complet de l'objet qui stocke les données.

Value

Représentation sous forme de chaîne des données stockées dans l'état de session, le cas échéant.

État de l'application

La section État de l'application affiche des informations sur les valeurs stockées dans l'état de l'application, le cas échéant. Pour plus d'informations, consultez Vue d'ensemble de l'état de l'application ASP.NET.

Valeur

Description

Clé de l'application

Clé des données stockées dans l'état de l'application, le cas échéant.

Type

Type qualifié complet de l'objet qui stocke les données.

Value

Représentation sous forme de chaîne des données stockées dans l'état de l'application, le cas échéant.

Collection Cookies

Les sections Cookies de la demande et Cookies de la réponse affichent des informations sur les cookies échangés par le navigateur et le serveur à chaque demande et chaque réponse. La section affiche des cookies persistants et de session. ASP.NET crée automatiquement certains cookies, par exemple ceux qui sont destinés à l'état de session et à l'authentification par formulaire. Pour plus d'informations, consultez Vue d'ensemble des cookies ASP.NET.

Valeur

Description

Name

Nom du cookie.

Value

Valeur du cookie ou sous-clés et valeurs si le cookie a plusieurs valeurs.

Taille

Taille, en octets, du cookie.

Collection Headers

La section Collection Headers affiche des informations à propos des paires nom/valeur de l'en-tête des messages de demande et de réponse, lesquelles fournissent des informations à propos du corps du message ou de la ressource demandée. Les informations d'en-tête sont utilisées pour contrôler le traitement des messages de demande et la création des messages de réponse. Pour plus d'informations sur les en-têtes HTTP, consultez la norme RFC 2616 disponible sur le site Web du W3C (World Wide Web Consortium).

Valeur

Description

Name

Nom de l'en-tête.

Value

Valeur de l'en-tête.

Collection Form

La section Collection Form affiche des paires nom/valeur qui contiennent les valeurs des éléments du formulaire (valeurs de contrôle) envoyées dans une demande lors d'une opération POST (publication).

Valeur

Description

Name

Nom de la variable du formulaire.

Value

Valeur de la variable du formulaire.

Collection Querystring

La section Collection Querystring affiche les valeurs passées dans l'URL. Dans une URL, les informations de la chaîne de requête sont séparées des informations relatives au chemin d'accès par un point d'interrogation (?) ; les divers éléments de la chaîne de requête sont séparés par une perluète (&). Les paires nom/valeur de la chaîne de requête sont séparées par un signe égal (=). La propriété QueryString de l'objet HttpRequest retourne une collection NameValueCollection de variables chaîne de requête.

Valeur

Description

Name

Nom de la variable chaîne de requête.

Value

Valeur de la variable chaîne de requête.

Variables serveur

La section Variables serveur affiche une collection de variables d'environnement liées à un serveur et des informations d'en-tête de demande. La propriété ServerVariables de l'objet HttpRequest retourne une collection NameValueCollection de variables serveur.

Valeur

Description

Name

Nom de la variable serveur.

Value

Valeur de la variable serveur.

Retour au début

Traçage ASP.NET et traçage de diagnostic

Le traçage ASP.NET écrit des messages qui s'affichent dans des pages Web ASP.NET et dans la visionneuse de trace ASP.NET (Trace.axd). En revanche, la classe System.Diagnostics.Trace est utilisée pour le traçage des messages d'écriture dans la sortie de trace .NET Framework standard (généralement une fenêtre de console). Afin de pouvoir observer plus facilement la manière dont vos pages Web ASP.NET interagissent avec des objets métier et autres composants, vous pouvez intégrer la sortie de traçage ASP.NET avec le traçage System.Diagnostics. Vous pouvez ensuite router tous les messages de traçage vers l'une de ces sorties.

Les pages Web qui utilisent des objets métier de couche intermédiaire pour interagir avec des données et des règles métier constituent un scénario courant dans lequel le traçage ASP.NET et System.Diagnostics.Trace sont tous deux utilisés. Vous pouvez également utiliser le traçage System.Diagnostics.Trace pour les pages qui font appel à des services d'entreprise, tels que les transactions et les files d'attente. Dans ces situations, les composants métier et d'entreprise jouent un rôle décisif dans la réussite de l'exécution de la page. En outre, il peut s'avérer utile, avec l'analyse d'application, de surveiller le flux d'exécution à travers les diverses couches en utilisant une sortie de traçage unique. Pour plus d'informations, consultez Comment : activer le traçage d'une application ASP.NET.

Attributs de configuration du traçage

Le tableau suivant répertorie les attributs que vous pouvez utiliser pour modifier le comportement du traçage au niveau de l'application dans l'élément trace du fichier Web.config.

Attribut

Description

Enabled

true pour activer le traçage de l'application ; sinon, false. La valeur par défaut est false. Vous pouvez substituer ce paramètre pour des pages individuelles en affectant à l'attribut Trace dans la directive @ Page d'une page la valeur true ou false.

PageOutput

true pour afficher les informations de traçage à la fois dans les pages et dans la visionneuse de trace (Trace.axd) ; sinon, false. La valeur par défaut est false.

Remarque :
Les pages individuelles pour lesquelles le traçage est activé ne sont pas affectées par ce paramètre.

RequestLimit

Nombre de demandes de trace à stocker sur le serveur. La valeur par défaut est 10.

TraceMode

Ordre dans lequel les informations de traçage sont affichées. Affectez-lui le paramètre SortByTime pour effectuer un tri en fonction de l'ordre de traitement des informations. Affectez-lui le paramètre SortByCategory pour effectuer un tri alphabétique en fonction des catégories définies par l'utilisateur. La valeur par défaut est SortByTime.

LocalOnly

true pour que la visionneuse de trace (Trace.axd) soit uniquement disponible sur le serveur Web hôte ; sinon false. La valeur par défaut est true.

MostRecent

true pour afficher les informations de traçage les plus récentes comme sortie de traçage ; sinon, false. Si cette valeur est false, lorsque la valeur requestLimit est dépassée, les nouvelles demandes ne sont pas stockées. La valeur par défaut est false.

Remarque :
Les données de traçage qui dépassent la limite définie par l'attribut requestLimit sont éliminées au profit des données les plus récentes uniquement lorsque mostRecent a la valeur true.

Exemples de code

Rubriques "Comment" et "Procédure pas à pas"

Comment : activer le traçage d'une page ASP.NET

Comment : activer le traçage d'une application ASP.NET

Comment : afficher des informations de traçage ASP.NET avec la visionneuse de trace

Procédure pas à pas : intégration du traçage ASP.NET avec le traçage System.Diagnostics

Retour au début

Référence de Classe

Classe

Description

System.Diagnostics.Trace

Classe principale pour l'implémentation du traçage.

TraceContext

Capture et présente les détails d'exécution relatifs à une demande Web.

Retour au début

Voir aussi

Concepts

Performances, dépannage et débogage

Référence

Retour au début