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 |
---|---|
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. |
|
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.
|
|
Nombre de demandes de trace à stocker sur le serveur. La valeur par défaut est 10. |
|
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. |
|
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. |
|
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 |
Classe principale pour l'implémentation du traçage. |
|
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