Une question classique dans n'importe quel langage de programmation est le débug.
Ainsi, comment peut-on faire pour débugguer une application WEB ?
En effet, même si l'outil de développement Visua Studio.Net contient un débuggeur, plusieurs raisons peuvent inviter à gérer soi-même son débug :
- Tout le monde ne développe pas forcément avec VS.NET
- En cas de problème sur le serveur de production (ou Intégration) on ne pourra pas utiliser VS.NET pour chercher la raison pour laquelle une page ne fonctionne pas.
- ...
La classe à utiliser est :
| - HttpContext.Current.Trace |
Dans cette classe, on a 2 principales fonctions :
Elles permettent d'afficher dans la trace le message souhaité de la facon suivante (même principe pour Write que pour Warn) :
- Dans le cas d'un message simple :
- Dans le cas d'un message avec un titre du message :
| Write("TitreMessage", "Mon Message") |
Ainsi, par exemple, on peut afficher la valeur de la variable que l'on souhaite suivre de la facon suivante :
| - Write("Mavariable :", NomVariable) |
--------------------------------------
Afin de pouvoir voir cette trace, il existe 2 méthodes pour 2 types de sortie différente :
- Dans la page courante
- Dans un fichier autre : trace.axd
Première méthode :
- Grace à la page elle-même :
Dans l'entête de la page ASPX, on peut ajouter la variable TRACE à true, comme suit :
| <%@ Page ..... Trace="True" %> |
Cette trace ne sera active que dans la page courante ou la variable est à la valeur true. Cette activation passe par dessus celle du Web.Config (pageOutput="false").
En effet, la page aspx au chargement regarde si cette variable existe, si ce n'est pas le cas, il regardera la valeur de la variable pageOutput du Web.Config.
L'inverse est aussi vrai, dans le cas où l'on spécifie Trace="false" dans l'entête, le serveur ignorera la variable du Web.Config pour cette page.
Seconde methode :
- Dans une page externe : TRACE.AXD
Cet visualisation se fait avec un paramétrage du fichier WEB.CONFIG de l'application Web.
Ce fichier va indiquer à l'application Web que dans chaque page aspx qu'il rencontrera, il devra stocker tout le débug généré en mémoire afin de pouvoir le visionner avec la page Trace.axd.
Dans le WEB.CONFIG on paramêtre le bloc TRACE comme suit :
<configuration> <system.web> <trace enabled="true" pageOutput="true" localOnly="true" traceMode="SortByTime" requestLimit="50"> </trace> <system.web> </configuration>
|
Attention :
- Si le débug est désactivé dans le Web.config (enabled="false") la page trace.axd ne répondra pas du tout et provoquera une erreur.
- La variable
pageOutput indique si on veut afficher la trace dans les pages ASPX courantes, ainsi si cette variable est à true, toutes les pages aspx auront le debug en bas de page (sauf si on spécifie dans l'entête de la page Trace="false"), valeur par défaut : false.
- La variable
localOnly permet d'interdire la visibilité de cette trace par un navigateur hormis si celui-ci est sur le serveur IIS lui-même (par défaut valeur à true).
- La variable
traceMode permet de donner le classement de cette affichage, par ordre chronologique (SortByTime : par défaut) ou par ordre de catégorie (SortByCategory).
- La variable
requestLimit impose le nombre de trace qui est conservé en mémoire (par défaut 10).
On a plus qu'à aller avec son navigateur à l'adresse suivante, et contrôler les traces mémorisées :
- http://localhost/Monapplication/trace.axd
Bon Coding
Romelard Fabrice (Alias F___)