Traçage au niveau de la page Asp.Net, débogage, gestion des erreurs [Exemple]
Dans toute application, des erreurs sont inévitables lors du processus de développement. Il est important de pouvoir détecter les erreurs à un stade précoce.
Dans Visual Studio, il est possible de le faire pour les applications ASP.Net. Visual Studio est utilisé pour le débogage et dispose de techniques de gestion des erreurs pour ASP.Net.
Qu’est-ce que le débogage dans ASP.NET ?
Le débogage est le processus d'ajout de points d'arrêt à une application. Ces points d'arrêt sont utilisés pour suspendre l'exécution d'un programme en cours d'exécution. Cela permet au développeur de comprendre ce qui se passe dans un programme à un moment donné.
Prenons un exemple de programme. Le programme affiche une chaîne « Nous sommes en train de déboguer » à l'utilisateur. Supposons que lorsque nous exécutons l'application, pour une raison quelconque, la chaîne ne s'affiche pas. Pour identifier le problème, nous devons ajouter un point d'arrêt. Nous pouvons ajouter un point d'arrêt à la ligne de code qui affiche la chaîne. Ce point d'arrêt mettra en pause l'exécution du programme. À ce stade, le programmeur peut voir ce qui ne va pas. Le programmeur rectifie le programme en conséquence.
Ici, dans l'exemple, nous utiliserons notre 'DemoApplication' qui a été créée dans les chapitres précédents. Dans l'exemple suivant, nous verrons
- Comment faire en sorte que l'application de démonstration affiche une chaîne.
- Comment ajouter des points d'arrêt à une application.
- Comment déboguer l'application à l'aide de ce point d'arrêt.
Comment déboguer une application dans ASP.NET
Vous trouverez ci-dessous les étapes pour créer une application de démonstration, ajouter des points d'arrêt et déboguer dans ASP.Net :
Étape 1) Ouvrez l'application dans Visual Studio
Assurons-nous d’abord que notre application Web est ouverte dans Visual Studio. Assurez-vous que DemoApplication est ouvert dans Visual Studio.
Étape 2) Ouvrez maintenant le fichier Demo.aspx.cs et ajoutez la ligne de code ci-dessous.
- Nous ajoutons simplement la ligne de code Response.Write pour afficher une chaîne.
- Ainsi, lorsque l'application s'exécute, elle doit afficher la chaîne « Nous débogons » dans le navigateur Web.
namespace DemoApplication { public partial class Demo : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { Response.Write("We are debugging"); } } }
Étape 3) Ajouter un point d'arrêt à l'application
Un point d'arrêt est un point dans Visual Studio où vous souhaitez que l'exécution du programme s'arrête.
- Pour ajouter un point d'arrêt, vous devez cliquer sur la colonne dans laquelle vous souhaitez insérer le point d'arrêt. Donc dans notre cas, nous voulons que notre programme s'arrête à la ligne de code « Response.Write ». Vous n'avez pas besoin d'ajouter de commande pour ajouter un point d'arrêt. Il vous suffit de cliquer sur la ligne sur laquelle vous souhaitez ajouter un point d'arrêt.
- Une fois cela fait, vous remarquerez que le code est marqué en rouge. De plus, une bulle rouge apparaît dans la colonne à côté de la ligne de code.
Remarque: - Vous pouvez ajouter plusieurs points d'arrêt dans une application
Étape 4) Exécutez l'application en mode débogage
Vous devez maintenant exécuter votre application en mode débogage. Dans Visual Studio, choisissez l’option de menu Debug->Start Debugging.
Production:-
Lorsque vous effectuez toutes les étapes correctement, l'exécution du programme sera interrompue. Visual Studio ira au point d'arrêt et marquera la ligne de code en jaune.
Désormais, si le programmeur estime que le code est incorrect, l'exécution peut être arrêtée. Le code peut alors être modifié en conséquence. Pour continuer le programme, le programmeur doit cliquer sur le bouton F5 du clavier.
Qu’est-ce que le traçage dans ASP.NET ?
Le traçage des applications permet de voir si les pages demandées entraînent une erreur. Lorsque le traçage est activé, une page supplémentaire appelée trace.axd est ajoutée à l'application. (Voir l'image ci-dessous). Cette page est jointe à la candidature. Cette page affichera toutes les demandes et leur statut.
Comment activer le traçage pour une application dans ASP.NET
Voyons comment activer le traçage d'un Application ASP.Net:
Étape 1) Travaillons sur notre 'DemoApplication'. Ouvrez le fichier web.config à partir de l'Explorateur de solutions.
Étape 2) Ajoutez la ligne de code ci-dessous au fichier Web.config.
L'instruction trace est utilisée pour activer le traçage de l'application.
- Le 'requestLimit' dans l'instruction trace est utilisé. Il spécifie le nombre de demandes de pages qui doivent être tracées.
- Dans notre exemple, nous donnons une limite de 40. Nous donnons une limite car une valeur plus élevée dégradera les performances de l'application.
<?xml version="1.0" encoding="utf-8"?> <! -- For more information on how to configure your ASP.NET application, please visit http://go.microsoft.com/fwlink/?LinkId=169433 --> <configuration> <system.web> <compilation debug="true" targetFramework="4.0" /> <httpRuntime targetFramework="4.0” /> <trace enable="true" pageOutput="false" requestLimit="40" localOnly="false"/> </system.web> </configuration>
Exécutez la « démoapplication » dans Visual Studio.
Production:-
Si vous naviguez maintenant jusqu'à l'URL – http://localhost:53003/trace.axd , vous verrez les informations pour chaque demande. Ici, vous pouvez voir si des erreurs se produisent dans une application. Les types d'informations suivants sont affichés sur la page ci-dessus
- L’heure de la demande de la page Web.
- Le nom de la page Web demandée.
- Le code d'état de la requête Web. (le code d'état 200 signifie que la demande est réussie).
- Afficher les détails qui vous permet d'afficher plus de détails sur la requête Web. Un exemple de ceci est présenté ci-dessous. Une information détaillée importante fournie est l’information d’en-tête. Ces informations montrent quelles sont les informations envoyées dans l’en-tête de chaque requête Web.
Traçage au niveau de la page dans ASP.NET
Traçage au niveau de la page dans ASP.Net affiche toutes les informations générales sur une page Web lors de son traitement. Ceci est utile pour le débogage si une page ne fonctionne pas pour une raison quelconque. Visual Studio fournit des informations détaillées sur divers aspects de la page et des informations telles que l'heure de chaque méthode appelée dans la requête Web.
Par exemple, si votre application Web rencontre un problème de performances, ces informations peuvent vous aider à déboguer le problème. Ces informations s'affichent lorsque l'application est exécutée dans Visual Studio.
Comment activer le traçage au niveau de la page dans ASP.NET
Voyons comment activer le traçage au niveau de la page pour une application ASP.Net :
Étape 1) Travaillons sur notre DemoApplication. Ouvrez le fichier demo.aspx à partir de l'Explorateur de solutions
Étape 2) Ajoutez la ligne de code ci-dessous pour activer le traçage des pages. Dans la déclaration Page, ajoutez simplement la ligne Trace="true". Cette ligne de code permettra le traçage au niveau de la page.
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Demo.aspx.cs" Inherits="DemoApplication.Demo" %> <!DOCTYPE html> <html xmlns="http://www.w3.ore/1999/xhtml"> <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server”> </form> </body> </html>
Exécutez l'application dans Visual Studio.
Production:-
Désormais, lorsque la page Web Demo.aspx s'affiche, vous obtiendrez de nombreuses informations sur la page. Des informations telles que la durée de chaque aspect du cycle de vie de la page sont affichées sur cette page.
Gestion des erreurs : affichage d'une page d'erreur personnalisée
In ASP.Net, vous pouvez afficher des pages d'erreur personnalisées pour les utilisateurs. Si une application contient une sorte d'erreur, une page personnalisée affichera cette erreur à l'utilisateur.
Dans notre exemple, nous allons d'abord ajouter une page HTML. Cette page affichera une chaîne à l'utilisateur « Nous étudions le problème ». Nous ajouterons ensuite un code d'erreur à notre page demo.aspx afin que la page d'erreur s'affiche.
Suivons les étapes mentionnées ci-dessous
Étape 1) Travaillons sur notre DemoApplication. Ajoutons une page HTML à l'application
- Cliquez avec le bouton droit sur DemoApplication dans l'Explorateur de solutions
- Choisissez l'option de menu 'Ajouter' -> Page HTML
Étape 2) À l'étape suivante, nous devons fournir un nom à la nouvelle page HTML.
- Fournissez le nom « Page d'erreur ».
- Cliquez sur le bouton « OK » pour continuer.
Étape 3) La page d'erreur s'ouvrira automatiquement dans Visual Studio. Si vous accédez à l'Explorateur de solutions, vous verrez le fichier ajouté.
Ajoutez la ligne de code « Nous étudions le problème » à la page HTML. Vous n'avez pas besoin de fermer le fichier HTML avant d'apporter la modification au fichier web.config.
<!DOCTYPE html> <html xmlns="http://www.w3.ore/1999/xhtml"> <head runat="server"> <title></title> </head> <body> We are looking into the problem </body> </html>
Étape 4) Vous devez maintenant apporter une modification au fichier web.config. Ce changement indiquera que chaque fois qu'une erreur se produit dans l'application, la page d'erreur personnalisée doit être affichée.
La balise 'customErrors' permet de définir une page d'erreur personnalisée. La propriété defaultRedirect est définie sur le nom de notre page d'erreur personnalisée créée à l'étape précédente.
<configuration> <system.web> <compilation debug="true" targetFramework="4.0" /> <httpRuntime targetFramework="4.0” /> <customErrors mode="On" defaultRedirect="ErrorPage.html"> </customErrors> </system.web> </configuration>
Étape 5) Ajoutons maintenant du code défectueux à la page demo.aspx.cs. Ouvrez cette page en double-cliquant sur le fichier dans l'Explorateur de solutions
Ajoutez le code ci-dessous au fichier Demo.aspx.cs.
- Ces lignes de code sont destinées à lire les lignes d'un texte à partir d'un fichier.
- Le fichier est censé se trouver dans le lecteur D sous le nom « Example.txt ».
- Mais dans notre situation, ce fichier n’existe pas vraiment. Ce code entraînera donc une erreur lors de l’exécution de l’application.
namespace DemoApplication { public partial class Demo : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { String path = @"D:\Example.txt"; string[] lines; lines = File.ReadAllLines(path); } } }
Maintenant, exécutez le code dans Visual Studio et vous devriez obtenir le résultat ci-dessous.
Production:-
La page ci-dessus montre qu'une erreur s'est produite dans l'application. En conséquence, la page Error.html s'affiche à l'utilisateur.
Exception ASP.NET non gérée
Même dans le meilleur des cas, il peut y avoir des erreurs imprévisibles.
Supposons qu'un utilisateur navigue vers la mauvaise page de l'application. C’est quelque chose qui ne peut être prédit. Dans de tels cas, ASP.Net peut rediriger l'utilisateur vers le fichier errorpage.html.
Voyons un exemple à ce sujet.
- Nous allons utiliser notre même « DemoApplication » qui contient le fichier Errorpage.html.
- Et nous allons essayer de visualiser une page web qui n'existe pas dans notre application.
- Nous devrions être redirigés vers notre page ErrorPage.html dans ce cas. Voyons les étapes pour y parvenir.
Étape 1) Travaillons sur notre DemoApplication. Ouvrez le fichier Global.asax.cs à partir de l'Explorateur de solutions
REMARQUE: Le fichier global.asax.cs est utilisé pour ajouter du code qui sera applicable sur toutes les pages de l'application.
Étape 2) Ajoutez la ligne de code ci-dessous au global.asax.cs. Ces lignes seront utilisées pour vérifier les erreurs et afficher la page ErrorPage.html en conséquence.
namespace DemoApplication { public partial class Demo : System.Web.UI.Page { protected void Application_Error(object sender, EventArgs e) { ? HttpException lastErrorWrapper = Server.GetLastError() as HttpException; if(lastErrorWrapper.GetHttpCode() == 404) Server.T ransfer("~/ErrorPage.html"); } } }
Explication du code : -
- La première ligne est le gestionnaire d'événements Application_Error. Cet événement est appelé chaque fois qu'une erreur se produit dans une application. Notez que le nom de l'événement doit être « Application_Error ». Et les paramètres doivent être comme indiqué ci-dessus.
- Ensuite, nous définissons un objet du type de classe HttpException. Il s'agit d'un objet standard qui contiendra tous les détails de l'erreur. Nous utilisons ensuite la méthode Server.GetLastError pour obtenir tous les détails de la dernière erreur survenue dans l'application.
- Nous vérifions ensuite si le code d'erreur de la dernière erreur est 404. (Le code d'erreur 404 est le code standard renvoyé lorsqu'un utilisateur navigue vers une page qui n'est pas trouvée). Nous transférons ensuite l'utilisateur vers la page ErrorPage.html si le code d'erreur correspond.
Exécutez maintenant le code dans Visual Studio et vous devriez obtenir la sortie ci-dessous
Production:-
Parcourir la page http://localhost:53003/Demo1.aspx . N'oubliez pas que Demo1.aspx n'existe pas dans notre application. Vous obtiendrez alors le résultat ci-dessous.
La page ci-dessus montre qu'une erreur s'est produite dans l'application. En conséquence, la page Error.html s'affiche à l'utilisateur.
Journalisation des erreurs ASP.NET
En enregistrant les erreurs d'application, cela aide le développeur à déboguer et à résoudre l'erreur ultérieurement. ASP.Net a la possibilité de consigner les erreurs. Cela se fait dans le fichier Global.asax.cs lorsque l'erreur est capturée. Pendant le processus de capture, le message d'erreur peut être écrit dans un fichier journal.
Voyons un exemple à ce sujet.
- Nous allons utiliser notre même DemoApplication qui a le Errorpage.html.
- Et nous allons essayer de visualiser une page web qui n'existe pas dans notre application.
- Nous devrions être redirigés vers notre page ErrorPage.html dans ce cas.
- Et en même temps, nous écrirons le message d’erreur dans un fichier journal. Voyons les étapes pour y parvenir.
Étape 1) Travaillons sur notre DemoApplication. Ouvrez le fichier Global.asax.cs à partir de l'Explorateur de solutions
Étape 2) Ajoutez la ligne de code ci-dessous au global.asax.cs. Il vérifiera les erreurs et affichera la page ErrorPage.html en conséquence. En même temps, nous enregistrerons les détails de l'erreur dans un fichier appelé « AllErrors.txt ». Pour notre exemple, nous allons écrire du code pour créer ce fichier sur le lecteur D.
namespace DemoApplication { public partial class Demo : System.Web.UI.Page { protected void Application_Error(object sender, EventArgs e) { Exception exc = Server.GetLastError(); String str =""; str = exc.Message; String path = @"D:\AllErrors.txt"; File.WriteAllTest(path,str); Server.trrasfer("~/ErrorPage.html"); } } }
Explication du code : -
- La première ligne consiste à obtenir l'erreur elle-même en utilisant la méthode 'Server.GetLastError'. Celui-ci est ensuite affecté à la variable « exc ».
- Nous créons ensuite une variable chaîne vide appelée « str ». Nous obtenons le message d'erreur réel en utilisant la propriété 'exc.Message'. La propriété exc.Message aura le message exact pour toute erreur survenant lors de l'exécution de l'application. Celui-ci est ensuite affecté à la variable chaîne.
- Ensuite, nous définissons le fichier appelé « AllErrrors.txt ». C'est ici que tous les messages d'erreur seront envoyés. Nous écrivons la chaîne 'str' qui contient tous les messages d'erreur de ce fichier.
- Enfin, nous transférons l'utilisateur vers le fichier ErrorPage.html.
Production:-
Parcourir la page http://localhost:53003/Demo1.aspx . N'oubliez pas que Demo1.aspx n'existe pas dans notre application. Vous obtiendrez alors le résultat ci-dessous.
Et en même temps, si vous ouvrez le fichier « AllErrors.txt », vous verrez les informations ci-dessous.
Le message d'erreur peut ensuite être transmis ultérieurement au développeur à des fins de débogage.
Résumé
- ASP.Net a la possibilité d'effectuer le débogage et la gestion des erreurs.
- Le débogage peut être réalisé en ajoutant des points d'arrêt au code. On exécute ensuite l'option Démarrer avec le débogage dans Visual Studio pour déboguer le code.
- Le traçage est la possibilité de fournir plus d'informations lors de l'exécution de l'application. Cela peut être fait au niveau de l’application ou de la page.
- Au niveau de la page, le code Trace=true doit être ajouté à la directive page.
- Au niveau de l'application, une page supplémentaire appelée Trace.axd est créée pour l'application. Cela fournit toutes les informations de traçage nécessaires.