Asp.Net-paginaniveau traceren, foutopsporing, foutafhandeling (voorbeeld)

Inhoudsopgave:

Anonim

In elke toepassing kunnen fouten optreden tijdens het ontwikkelingsproces. Het is belangrijk om fouten in een vroeg stadium te kunnen ontdekken.

In Visual Studio is het mogelijk om dit te doen voor ASP.Net-applicaties. Visual Studio wordt gebruikt voor foutopsporing en heeft foutafhandelingstechnieken voor ASP.Net.

In deze tutorial leer je-

  • Wat is foutopsporing in ASP.NET?
  • Wat is tracering in ASP.NET?
  • Tracering op paginaniveau
  • Foutafhandeling: een aangepaste foutpagina weergeven
  • ASP.NET Onverwerkte uitzondering
  • ASP.NET Foutregistratie

Wat is foutopsporing in ASP.NET?

Foutopsporing is het proces waarbij breekpunten aan een toepassing worden toegevoegd. Deze breekpunten worden gebruikt om de uitvoering van een lopend programma te pauzeren. Hierdoor kan de ontwikkelaar begrijpen wat er op een bepaald moment in een programma gebeurt.

Laten we een voorbeeld nemen van een programma. Het programma toont een string "We debuggen" aan de gebruiker. Stel dat wanneer we de toepassing uitvoeren, om de een of andere reden de tekenreeks niet wordt weergegeven. Om het probleem te identificeren, moeten we een breekpunt toevoegen. We kunnen een breekpunt toevoegen aan de coderegel die de tekenreeks weergeeft. Dit breekpunt zal de uitvoering van het programma pauzeren. Op dit punt kan de programmeur zien wat er mogelijk misgaat. De programmeur corrigeert het programma dienovereenkomstig.

Hier in het voorbeeld zullen we onze 'DemoApplication' gebruiken die in eerdere hoofdstukken is gemaakt. In het volgende voorbeeld zullen we zien

  • Hoe u de demo-applicatie een string laat weergeven.
  • Hoe breekpunten aan een applicatie toe te voegen.
  • Hoe de toepassing te debuggen met behulp van dit breekpunt.

Stap 1) Laten we er eerst voor zorgen dat onze webapplicatie geopend is in Visual Studio. Zorg ervoor dat de DemoApplication is geopend in Visual Studio.

Stap 2) Open nu het bestand Demo.aspx.cs en voeg de onderstaande coderegel toe.

  • We voegen alleen de coderegel Response.Write toe om een ​​string weer te geven.
  • Dus wanneer de toepassing wordt uitgevoerd, moet deze de tekenreeks "We debuggen" in de webbrowser weergeven.

namespace DemoApplication{public partial class Demo : System.Web.UI.Page{protected void Page_Load(object sender, EventArgs e){Response.Write("We are debugging");}}}

Stap 3) Laten we nu een breekpunt toevoegen. Een breekpunt is een punt in Visual Studio waar u de uitvoering van het programma wilt stoppen.

  1. Om een ​​breekpunt toe te voegen, moet u op de kolom klikken waar u het breekpunt wilt invoegen. Dus in ons geval willen we dat ons programma stopt bij de coderegel "Response.Write". U hoeft geen commando toe te voegen om een ​​breekpunt toe te voegen. U hoeft alleen maar op de regel te klikken waaraan u een breekpunt wilt toevoegen.
  2. Zodra dit is gebeurd, zult u merken dat de code rood wordt gemarkeerd. Er verschijnt ook een rode ballon in de kolom naast de coderegel.

Opmerking: - U kunt meerdere breekpunten in een toepassing toevoegen

Stap 4) Nu moet u uw toepassing uitvoeren in de foutopsporingsmodus. Kies in Visual Studio de menuoptie Debug-> Start Debugging.

Uitgang: -

Als u alle stappen correct uitvoert, wordt de uitvoering van het programma afgebroken. Visual Studio gaat naar het breekpunt en markeert de coderegel in geel.

Als de programmeur nu het gevoel heeft dat de code onjuist is, kan de uitvoering worden gestopt. De code kan vervolgens dienovereenkomstig worden gewijzigd. Om door te gaan met het programma, moet de programmeur op de F5-knop op het toetsenbord klikken.

Wat is tracering in ASP.NET?

Applicatietracering stelt iemand in staat om te zien of de opgevraagde pagina's resulteren in een fout. Als tracering is ingeschakeld, wordt een extra pagina met de naam trace.axd aan de applicatie toegevoegd. (Zie onderstaande afbeelding). Deze pagina is bij de applicatie gevoegd. Deze pagina toont alle verzoeken en hun status.

Laten we eens kijken hoe u tracering voor een toepassing kunt inschakelen.

Stap 1) Laten we werken aan onze 'DemoApplication'. Open het web.config-bestand vanuit de Solution Explorer.

Stap 2) Voeg de onderstaande regel code toe aan het Web.config-bestand.

De trace-instructie wordt gebruikt om tracering voor de toepassing mogelijk te maken.

  • De 'requestLimit' in trace-instructie wordt gebruikt. Het specificeert het aantal paginaverzoeken dat moet worden getraceerd.
  • In ons voorbeeld geven we een limiet van 40. We geven een limiet omdat een hogere waarde de prestatie van de applicatie zal verslechteren.

Voer de "demoapplicatie" uit in Visual Studio.

Uitgang: -

Als u nu naar de URL bladert - http: // localhost: 53003 / trace.axd , ziet u de informatie voor elk verzoek. Hier kunt u zien of er fouten optreden in een applicatie. De volgende soorten informatie worden op de bovenstaande pagina weergegeven

  1. Het tijdstip van het verzoek om de webpagina.
  2. De naam van de webpagina die wordt opgevraagd.
  3. De statuscode van het webverzoek. (statuscode van 200 betekent dat het verzoek is gelukt).
  4. De Details bekijken die u toestaat om meer details over het webverzoek te bekijken. Hieronder ziet u een voorbeeld hiervan. Een belangrijke gedetailleerde informatie die wordt verstrekt, is de koptekstinformatie. Deze informatie laat zien wat de informatie is die wordt verzonden in de koptekst van elk webverzoek.

Tracering op paginaniveau

Paginatracering toont alle algemene informatie over een webpagina wanneer deze wordt verwerkt. Dit is handig bij het opsporen van fouten als een pagina om welke reden dan ook niet werkt.

Visual Studio biedt gedetailleerde informatie over verschillende aspecten van de pagina. Informatie zoals de tijd voor elke methode die wordt aangeroepen in het webverzoek. Als uw webtoepassing bijvoorbeeld een prestatieprobleem heeft, kan deze informatie helpen bij het oplossen van het probleem. Deze informatie wordt weergegeven wanneer de applicatie wordt uitgevoerd in Visual Studio.

Laten we eens kijken hoe u tracering voor een toepassing op paginaniveau kunt inschakelen.

Stap 1) Laten we werken aan onze demo-applicatie. Open het demo.aspx-bestand vanuit de Solution Explorer

Stap 2) Voeg de onderstaande regel code toe om paginatracering in te schakelen. Voeg in de pagina-declaratie gewoon de regel Trace = "true" toe. Deze coderegel maakt tracering op paginaniveau mogelijk.

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Demo.aspx.cs" Inherits="DemoApplication.Demo" %>

Wanneer nu de webpagina Demo.aspx wordt weergegeven, krijgt u een heleboel informatie over de pagina. Informatie zoals de tijd voor elk aspect van de paginalevenscyclus wordt op deze pagina weergegeven.

Foutafhandeling: een aangepaste foutpagina weergeven

In ASP.Net kunt u aangepaste foutpagina's laten weergeven aan de gebruikers. Als een applicatie een fout bevat, zal een aangepaste pagina deze fout aan de gebruiker tonen.

In ons voorbeeld gaan we eerst een HTML-pagina toevoegen. Op deze pagina wordt een tekenreeks weergegeven voor de gebruiker "We onderzoeken het probleem". We zullen dan een foutcode toevoegen aan onze demo.aspx-pagina zodat de foutpagina wordt weergegeven.

Laten we de onderstaande stappen volgen

Stap 1) Laten we werken aan onze demo-applicatie. Laten we een HTML-pagina aan de applicatie toevoegen

  1. Klik met de rechtermuisknop op de DemoApplication in Solution Explorer
  2. Kies de menuoptie 'Toevoegen' -> HTML-pagina

Stap 2) In de volgende stap moeten we een naam geven aan de nieuwe HTML-pagina.

  1. Geef de naam op als 'ErrorPage'.
  2. Klik op de knop 'OK' om door te gaan.

Stap 3) De foutpagina wordt automatisch geopend in Visual Studio. Als u naar de Solution Explorer gaat, ziet u dat het bestand is toegevoegd.

Voeg de coderegel "We onderzoeken het probleem" toe aan de HTML-pagina. U hoeft het HTML-bestand niet te sluiten voordat u de wijziging aanbrengt in het web.config-bestand.

We are looking into the problem

Stap 4) Nu moet u een wijziging aanbrengen in het web.config-bestand. Deze wijziging geeft aan dat wanneer er een fout optreedt in de toepassing, de aangepaste foutpagina moet worden weergegeven.

Met de tag 'customErrors' kunt u een aangepaste foutpagina definiëren. De defaultRedirect-eigenschap is ingesteld op de naam van onze aangepaste foutpagina die in de vorige stap is gemaakt.

Stap 5) Laten we nu een foutieve code toevoegen aan de pagina demo.aspx.cs. Open deze pagina door te dubbelklikken op het bestand in Solution Explorer

Voeg de onderstaande code toe aan het bestand Demo.aspx.cs.

  • Deze regels code zijn ontworpen om de regels van een tekst uit een bestand te lezen.
  • Het bestand zou zich in de D-schijf moeten bevinden met de naam 'Example.txt'.
  • Maar in onze situatie bestaat dit bestand niet echt. Dus deze code zal resulteren in een foutmelding wanneer de applicatie wordt uitgevoerd.

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);}}}

Voer nu de code uit in Visual Studio en u zou de onderstaande uitvoer moeten krijgen.

Uitgang: -

De bovenstaande pagina laat zien dat er een fout is opgetreden in de applicatie. Als resultaat wordt de pagina Error.html aan de gebruiker getoond.

ASP.NET Onverwerkte uitzondering

Zelfs in de beste scenario's kunnen er fouten optreden die gewoon niet te voorzien zijn.

Stel dat een gebruiker naar de verkeerde pagina in de applicatie bladert. Dit is iets dat niet kan worden voorspeld. In dergelijke gevallen kan ASP.Net de gebruiker omleiden naar de errorpage.html.

Laten we hier een voorbeeld van bekijken.

  • We gaan onze zelfde 'DemoApplication' gebruiken die de Errorpage.html heeft.
  • En we zullen proberen een webpagina te bekijken die niet bestaat in onze applicatie.
  • In dit geval zouden we moeten worden omgeleid naar onze ErrorPage.html-pagina. Laten we de stappen bekijken om dit te bereiken.

Stap 1) Laten we werken aan onze demo-applicatie. Open het bestand Global.asax.cs vanuit de Solution Explorer

OPMERKING : het bestand global.asax.cs wordt gebruikt om code toe te voegen die op alle pagina's in de toepassing van toepassing zal zijn.

Stap 2) Voeg de onderstaande regel code toe aan het bestand global.asax.cs. Deze regels worden gebruikt om op fouten te controleren en de pagina ErrorPage.html dienovereenkomstig weer te geven.

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");}}}

Code Verklaring: -

  1. De eerste regel is de gebeurtenishandler Application_Error. Deze gebeurtenis wordt opgeroepen wanneer er een fout optreedt in een toepassing. Merk op dat de gebeurtenisnaam 'Application_Error' moet zijn. En de parameters moeten zijn zoals hierboven weergegeven.
  2. Vervolgens definiëren we een object van het klassetype HttpException. Dit is een standaardobject dat alle details van de fout zal bevatten. Vervolgens gebruiken we de Server.GetLastError-methode om alle details van de laatste fout die in de applicatie is opgetreden, te achterhalen.
  3. We controleren vervolgens of de foutcode van de laatste fout 404 is. (De foutcode 404 is de standaardcode die wordt geretourneerd wanneer een gebruiker naar een pagina bladert die niet wordt gevonden). We sturen de gebruiker vervolgens door naar de ErrorPage.html-pagina als de foutcode overeenkomt.

Voer nu de code uit in Visual Studio en u zou de onderstaande uitvoer moeten krijgen

Uitgang: -

Blader door de pagina http: // localhost: 53003 / Demo1.aspx . Onthoud dat Demo1.aspx niet bestaat in onze applicatie. U krijgt dan de onderstaande uitvoer.

De bovenstaande pagina laat zien dat er een fout is opgetreden in de applicatie. Als resultaat wordt de pagina Error.html aan de gebruiker getoond.

ASP.NET Foutregistratie

Door toepassingsfouten te loggen, helpt het de ontwikkelaar om de fout op een later tijdstip te debuggen en op te lossen. ASP.Net heeft de mogelijkheid om fouten te loggen. Dit wordt gedaan in het bestand Global.asax.cs wanneer de fout wordt vastgelegd. Tijdens het vastleggen kan het foutbericht in een logboekbestand worden geschreven.

Laten we hier een voorbeeld van bekijken.

  • We gaan dezelfde DemoApplication gebruiken die de Errorpage.html heeft.
  • En we zullen proberen een webpagina te bekijken die niet bestaat in onze applicatie.
  • In dit geval zouden we moeten worden omgeleid naar onze ErrorPage.html-pagina.
  • En tegelijkertijd schrijven we het foutbericht naar een logbestand. Laten we de stappen bekijken om dit te bereiken.

Stap 1) Laten we werken aan onze demo-applicatie. Open het bestand Global.asax.cs vanuit de Solution Explorer

Stap 2) Voeg de onderstaande regel code toe aan het bestand global.asax.cs. Het controleert op fouten en geeft de pagina ErrorPage.html dienovereenkomstig weer. Tegelijkertijd loggen we de foutdetails in een bestand met de naam 'AllErrors.txt'. Voor ons voorbeeld zullen we code schrijven om dit bestand op de D-schijf te laten maken.

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");}}}

Code Verklaring: -

  1. De eerste regel is om de fout zelf op te halen door de 'Server.GetLastError'-methode te gebruiken. Dit wordt dan toegewezen aan de variabele 'exc'.
  2. Vervolgens maken we een lege stringvariabele met de naam 'str'. We krijgen het daadwerkelijke foutbericht met behulp van de eigenschap 'exc.Message'. De eigenschap exc.Message bevat het exacte bericht voor elke fout die optreedt bij het uitvoeren van de toepassing. Dit wordt vervolgens toegewezen aan de stringvariabele.
  3. Vervolgens definiëren we het bestand met de naam 'AllErrrors.txt'. Hier worden alle foutmeldingen naartoe gestuurd. We schrijven de string 'str' die alle foutmeldingen naar dit bestand bevat.
  4. Ten slotte brengen we de gebruiker over naar het ErrorPage.html-bestand.

Uitgang: -

Blader door de pagina http: // localhost: 53003 / Demo1.aspx . Onthoud dat Demo1.aspx niet bestaat in onze applicatie. U krijgt dan de onderstaande uitvoer.

En als u tegelijkertijd het bestand 'AllErrors.txt' opent, ziet u de onderstaande informatie.

De foutmelding kan vervolgens op een later tijdstip worden doorgegeven aan de ontwikkelaar voor foutopsporing.

Overzicht

  • ASP.Net heeft de mogelijkheid om foutopsporing en foutafhandeling uit te voeren.
  • Foutopsporing kan worden bereikt door breekpunten aan de code toe te voegen. Men voert vervolgens de optie Start met foutopsporing in Visual Studio uit om de code te debuggen.
  • Tracering is de mogelijkheid om meer informatie te geven tijdens het draaien van de applicatie. Dit kan op applicatie- of paginaniveau.
  • Op paginaniveau moet de code Trace = true worden toegevoegd aan de pagina-instructie.
  • Op applicatieniveau wordt voor de applicatie een extra pagina met de naam Trace.axd aangemaakt. Dit levert alle nodige opsporingsinformatie op.