Vous êtes sur la page 1sur 7

Labs ASP.NET v1.

1 Aurélien Norie & Sébastien Bovo [Microsoft]

Lab09

But du Lab

Le but de ce Lab est d’apprendre à utiliser certaines fonctionnalités de débogage de


Visual Studio .NET et du Framework .NET afin de déboguer des applications ASP.NET.

Préambule – Mise en place du projet

- Ouvrir le fichier zip « 09VBDebugTrace.zip » ci-dessous :

09VBDebugTrace.zip

- Copier le répertoire « 09VBDebugTrace » dans le répertoire


« C:\Inetpub\wwwroot »
- Créer l’application « 09VBDebugTrace » depuis la console IIS
- Double cliquer sur le fichier
« C:\Inetpub\wwwroot\09VBDebugTrace\09VBDebugTrace.sln » afin d’ouvrir
l’application dans Visual Studio .NET.
- Examiner le contenu du projet. Il contient :
o 1 page ASPX (« WebForm1.aspx ») qui affiche une source de données XML
dans une DataGrid
o 1 classe « FournisseurXML » qui fournit à la page ASPX la chaîne XML à
afficher
o 1 classe « EventLogger » qui saisie une entrée dans le journal des
événements de Windows. Modifier dans cette classe le mot de passe de
l’administrateur de la machine.

Exercice 1 – Débogage avec Visual Studio .NET

- Ouvrir la page de code behind de « WebForm1.aspx »


- Placer un point d’arrêt dans la méthode « Button1_Click » en cliquant dans la
marge grise, en face d’une ligne de code.
- La ligne sur laquelle le point d’arrêt a été placé est surlignée en rouge :

Page 1 sur 7
Labs ASP.NET v1.1 Aurélien Norie & Sébastien Bovo [Microsoft]

- Dans l’explorateur de solutions, cliquer droit sur la page « WebForm1.aspx » et


choisir « Définir comme page de démarrage ». Ainsi, Visual Studio .NET sait quelle
page lancer afin de commencer le déboguage

Page 2 sur 7
Labs ASP.NET v1.1 Aurélien Norie & Sébastien Bovo [Microsoft]

- Lancer ensuite le déboguage de l’application en activant le menu « Déboguer /


Démarrer », ou en appuyant sur la touche « F5 », ou en cliquant sur la flèche de
la barre d’outils de déboguage :

- Sur la page « WebForm1.aspx », cliquer sur le bouton « Charger les données ». Le


débogueur s’arrête sur le point d’arrêt défini précédemment. La prochaine ligne à
exécuter est surlignée en jaune.

- Dans le menu « déboguer », cliquer sur « Pas à pas détaillé » ou « F11 », ou


« Pas à pas principal » ou « F10 » afin de passer à l’instruction suivante dans le
code. Le pas à pas principal passe à l’instruction suivante sans entrer dans une
procédure si la ligne de code appelle une procédure, alors que le pas à pas détaillé
entre dans la procédure appelée en pas à pas. Pour cet exercice, appuyer plutôt
sur « Pas à pas détaillé » ou « F11 »
- Constater l’exécution ligne par ligne du code.
- Constater de même que le pas à pas entre dans la classe « FournisseurXML »

- Dans la fenêtre « Variables locales », repérer la valeur de la variable « sXML » et


observer son évolution au fur et à mesure de l’exécution du code dans la
méthode.
- Continuer le pas à pas pour ressortir de la méthode « XML » de la classe
« FournisseurXML ».
- Poser maintenant un autre point d’arrêt dans la méthode « Button1_Click »

Page 3 sur 7
Labs ASP.NET v1.1 Aurélien Norie & Sébastien Bovo [Microsoft]

- Appuyer sur la touche « F5 » ou cliquer sur la flèche de déboguage. L’exécution


continue et s’arrête sur le prochain point d’arrêt défini.
- Cliquer droit sur une variable et sélectionner « Ajouter un espion » afin d’ajouter
cette variable à la fenêtre « Espions » pour suivre son évolution au cours du
déroulement de l’application.
- De même, utiliser la fenêtre « Commande » afin d’évaluer le contenu
d’expressions, en tapant une expression précédée d’un point d’interrogation.

Exercice 2 – Utiliser le Traçage

- Le traçage au niveau de la page permet d'écrire des instructions de déboguage


directement sur une sortie de page et d'exécuter le code de déboguage de
manière conditionnelle lorsque le traçage est activé. Pour activer le traçage d'une
page, ajoutez la directive suivante au début du code de la page :
<%@ Page Trace="true"%>

- Lancer le déboguage de la page et observer l’affichage obtenu.


- Les instructions de traçage peuvent également être organisées par catégorie, à
l'aide de l'attribut « TraceMode » de la directive de Page. Si aucun attribut
« TraceMode » n'est défini, la valeur par défaut est « SortByTime ».

Page 4 sur 7
Labs ASP.NET v1.1 Aurélien Norie & Sébastien Bovo [Microsoft]

- Relancer le déboguage de la page, et cliquer maintenant sur le bouton « Charger


des données erronées ». Cela va générer une erreur dans le code, cette erreur
sera récupérée dans le code et un avertissement est affiché dans la trace.
- Constater l’affichage en rouge de la phrase « Une erreur a été logguée dans le
journal des événements ». Cet avertissement a été écrit par le code
« Trace.Warn() » de la méthode « Button2_Click »
- Si le traçage n’est pas activé (testé par « Trace.IsEnabled »), un simple message
est affiché sur la page :

- Enlever maintenant les directives de page de traçage.

- Pour activer le traçage au niveau de l'application (en opposition au traçage de


page), modifier le fichier web.config situé dans le répertoire racine de
l'application :

<trace enabled="true" requestLimit="10" pageOutput="false"


traceMode="SortByTime" localOnly="true" />

- Cette configuration permet à ASP.NET de tracer les requêtes aux pages ASPX dans
un fichier « trace.axd ».
- Taper l’url http://localhost/09VBDebugTrace/trace.axd pour accéder aux
statistiques de traçage de l’application, page par page :

Page 5 sur 7
Labs ASP.NET v1.1 Aurélien Norie & Sébastien Bovo [Microsoft]

Exercice 3 – Loguer des entrées dans le journal des événements


de Windows

- Dans l’exercice précédent, le bouton « Charger des données erronées » a été


cliqué. Un message a été écrit indiquant qu’une entrée a été loguée dans le
journal des événements.
- Ouvrir la classe « EventLogger » et regarder la méthode « WriteError » qui permet
de loguer une entrée dans le journal des événements Windows. Le code est le
suivant :

Dim mLog As New EventLog


mLog.Log = "Application"
mLog.WriteEntry(source, message, EventLogEntryType.Error)

- Ouvrir l’observateur d’événements Windows (« Outils d’administration /


Observateur d’événements ») et constater l’entrée ajoutée par l’application :

Page 6 sur 7
Labs ASP.NET v1.1 Aurélien Norie & Sébastien Bovo [Microsoft]

Page 7 sur 7