[asp.net] [général] asp.net : comment débugguer une application asp.net

Comment débugguer une application asp.net

Introduction

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.
- ...

Classe

La classe à utiliser est :

HttpContext.Current.Trace

Dans cette classe, on a 2 principales fonctions :

  • Warn
  • Write

Elles permettent d'afficher dans la trace le message souhaité de la façon suivante (même principe pour Write que pour Warn) :
- Dans le cas d'un message simple :

Write ("Mon message")

- 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 façon suivante :

Write("Mavariable :", NomVariable)

Utilisation

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

Grâce à 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 méthode

Dans une page externe : TRACE.AXD.
Cette 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___)

A voir également
Ce document intitulé « [asp.net] [général] asp.net : comment débugguer une application asp.net » issu de CodeS SourceS (codes-sources.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Rejoignez-nous