Asp.Net Page Level Tracing, Debugging, Fejlhåndtering [Eksempel]

I enhver applikation vil der nødvendigvis opstå fejl under udviklingsprocessen. Det er vigtigt at kunne opdage fejl på et tidligt tidspunkt.

I Visual Studio er det muligt at gøre dette til ASP.Net-applikationer. Visual Studio bruges til debugging og har fejlhåndteringsteknikker til ASP.Net.

Hvad er fejlretning i ASP.NET?

Debugging er processen med at tilføje breakpoints til en applikation. Disse brudpunkter bruges til at pause udførelsen af ​​et kørende program. Dette giver udvikleren mulighed for at forstå, hvad der sker i et program på et bestemt tidspunkt.

Lad os tage et eksempel på et program. Programmet viser en streng "Vi fejler" til brugeren. Antag, at når vi kører programmet, vises strengen af ​​en eller anden grund ikke. For at identificere problemet skal vi tilføje et brudpunkt. Vi kan tilføje et brudpunkt til kodelinjen, som viser strengen. Dette brudpunkt vil sætte afviklingen af ​​programmet på pause. På dette tidspunkt kan programmøren se, hvad der muligvis går galt. Programmøren retter programmet i overensstemmelse hermed.

Her i eksemplet vil vi bruge vores 'DemoApplication', der blev oprettet i tidligere kapitler. I det følgende eksempel vil vi se

  • Sådan får du demoapplikationen til at vise en streng.
  • Sådan tilføjer du pausepunkter til en applikation.
  • Sådan fejlretter du applikationen ved hjælp af dette brudpunkt.

Sådan fejlfinder du et program i ASP.NET

Nedenfor er trinene til at lave en demoapplikation, tilføje breakpoints og fejlfinde i ASP.Net:

Trin 1) Åbn applikationen i Visual Studio
Lad os først sikre os, at vi har vores webapplikation åben i Visual Studio. Sørg for, at DemoApplication er åben i Visual Studio.

Debug et program i ASP.NET

Trin 2) Åbn nu filen Demo.aspx.cs og tilføj nedenstående kodelinje.

  • Vi tilføjer bare kodelinjen Response.Write for at vise en streng.
  • Så når applikationen kører, skal den vise strengen "Vi fejlretter" i webbrowseren.

Debug et program i ASP.NET

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

Trin 3) Tilføj et brudpunkt til applikationen
Et brudpunkt er et punkt i Visual Studio, hvor du ønsker at udførelsen af ​​programmet skal stoppe.

Debug et program i ASP.NET

  1. For at tilføje et brudpunkt skal du klikke på den kolonne, hvor du vil have brudpunktet indsat. Så i vores tilfælde ønsker vi, at vores program stopper ved kodelinjen "Response.Write". Du behøver ikke tilføje nogen kommando for at tilføje et brudpunkt. Du skal blot klikke på den linje, hvor du vil tilføje et brudpunkt.
  2. Når dette er gjort, vil du bemærke, at koden bliver markeret med rødt. Der kommer også en rød boble op i kolonnen ved siden af ​​kodelinjen.

Bemærk: - Du kan tilføje flere pausepunkter i en applikation

Trin 4) Kør programmet i fejlretningstilstand
Nu skal du køre din applikation ved hjælp af fejlfindingstilstand. I Visual Studio skal du vælge menupunktet Debug->Start Debugging.

Debug et program i ASP.NET

Produktion:-

Debug et program i ASP.NET

Når du udfører alle trinene korrekt, vil udførelsen af ​​programmet bryde. Visual Studio vil gå til brudpunktet og markere kodelinjen med gult.

Nu, hvis programmøren føler, at koden er forkert, kan udførelsen stoppes. Koden kan derefter ændres i overensstemmelse hermed. For at fortsætte programmet skal programmøren klikke på F5-knappen på tastaturet.

Hvad er sporing i ASP.NET?

Applikationssporing giver mulighed for at se, om nogen af ​​de efterspurgte sider resulterer i en fejl. Når sporing er aktiveret, tilføjes en ekstra side kaldet trace.axd til applikationen. (Se billedet nedenfor). Denne side er vedhæftet ansøgningen. Denne side vil vise alle anmodninger og deres status.

Sporing i ASP.NET

Sådan aktiverer du sporing for en applikation i ASP.NET

Lad os se på, hvordan man aktiverer sporing for en ASP.Net applikation:

Trin 1) Lad os arbejde på vores 'DemoApplication'. Åbn filen web.config fra Solution Explorer.

Aktiver sporing for en applikation i ASP.NET

Trin 2) Tilføj nedenstående kodelinje til filen Web.config.

Sporingserklæringen bruges til at aktivere sporing for applikationen.

  • 'RequestLimit' i sporopgørelsen bruges. Det angiver antallet af sideanmodninger, der skal spores.
  • I vores eksempel giver vi en grænse på 40. Vi giver en grænse, fordi en højere værdi vil forringe applikationens ydeevne.

Aktiver sporing for en applikation i ASP.NET

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

Kør "demoapplikationen" i Visual Studio.

Produktion:-

Aktiver sporing for en applikation i ASP.NET

Hvis du nu browser til URL'en – http://localhost:53003/trace.axd , vil du se oplysningerne for hver anmodning. Her kan du se, om der opstår fejl i en applikation. Følgende typer information er vist på ovenstående side

  1. Tidspunktet for anmodningen om websiden.
  2. Navnet på den webside, der anmodes om.
  3. Statuskoden for webanmodningen. (statuskode på 200 betyder, at anmodningen er vellykket).
  4. Vis detaljer, som du tillader for at se flere detaljer om webanmodningen. Et eksempel på dette er vist nedenfor. En vigtig detaljeret information, der gives, er header-oplysningerne. Disse oplysninger viser, hvad der er de oplysninger, der sendes i overskriften på hver webanmodning.

Aktiver sporing for en applikation i ASP.NET

Sideniveausporing i ASP.NET

Sideniveausporing i ASP.Net viser al den generelle information om en webside, når den behandles. Dette er nyttigt ved fejlretning, hvis en side af en eller anden grund ikke virker. Visual Studio giver detaljerede oplysninger om forskellige aspekter af siden og oplysninger såsom tidspunktet for hver metode, der kaldes i webanmodningen.

Hvis din webapplikation f.eks. har et ydeevneproblem, kan disse oplysninger hjælpe med at fejlfinde problemet. Disse oplysninger vises, når programmet kører i Visual Studio.

Sådan aktiverer du sporing på sideniveau i ASP.NET

Lad os se på, hvordan man aktiverer sideniveausporing for en ASP.Net-applikation:

Trin 1) Lad os arbejde på vores demoapplikation. Åbn filen demo.aspx fra Solution Explorer

Sideniveausporing i ASP.NET

Trin 2) Tilføj nedenstående kodelinje for at aktivere sidesporing. I sideerklæringen skal du blot tilføje linjen Trace=”true”. Denne kodelinje tillader sporing på sideniveau.

Sideniveausporing i ASP.NET

<%@ 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>

Kør programmet i Visual Studio.

Produktion:-

Sideniveausporing i ASP.NET

Nu når websiden Demo.aspx vises, vil du få en hel masse information om siden. Oplysninger såsom tidspunktet for hvert aspekt af sidens livscyklus vises på denne side.

Fejlhåndtering: Viser en brugerdefineret fejlside

In ASP.Net, kan du få vist brugerdefinerede fejlsider til brugerne. Hvis en applikation indeholder nogen form for fejl, vil en brugerdefineret side vise denne fejl til brugeren.

I vores eksempel skal vi først tilføje en HTML-side. Denne side vil vise en streng til brugeren "Vi undersøger problemet". Vi vil derefter tilføje noget fejlkode til vores demo.aspx side, så fejlsiden vises.

Lad os følge nedenstående trin

Trin 1) Lad os arbejde på vores demoapplikation. Lad os tilføje en HTML-side til applikationen

  1. Højreklik på DemoApplication i Solution Explorer
  2. Vælg menupunktet 'Tilføj'->HTML-side

Fejlhåndtering i ASP.Net

Trin 2) I det næste trin skal vi give et navn til den nye HTML-side.

  1. Angiv navnet som 'ErrorPage'.
  2. Klik på knappen 'OK' for at fortsætte.

Fejlhåndtering i ASP.Net

Trin 3) Fejlsiden åbnes automatisk i Visual Studio. Hvis du går til Solution Explorer, vil du se filen tilføjet.

Fejlhåndtering i ASP.Net

Tilføj kodelinjen "Vi undersøger problemet" til HTML-siden. Du behøver ikke at lukke HTML-filen, før du foretager ændringen til web.config-filen.

Fejlhåndtering i ASP.Net

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

Trin 4) Nu skal du foretage en ændring i web.config-filen. Denne ændring vil meddele, at hver gang der opstår en fejl i applikationen, skal den tilpassede fejlside vises.

Tagget 'customErrors' gør det muligt at definere en brugerdefineret fejlside. Egenskaben defaultRedirect er indstillet til navnet på vores tilpassede fejlside, der blev oprettet i det forrige trin.

Fejlhåndtering i ASP.Net

<configuration>
	<system.web>
		<compilation debug="true" targetFramework="4.0" />
		<httpRuntime targetFramework="4.0” />
		
		 <customErrors mode="On" defaultRedirect="ErrorPage.html">
</customErrors>

		
	</system.web>
</configuration>

Trin 5) Lad os nu tilføje noget defekt kode til siden demo.aspx.cs. Åbn denne side ved at dobbeltklikke på filen i Solution Explorer

Fejlhåndtering i ASP.Net

Tilføj nedenstående kode til filen Demo.aspx.cs.

  • Disse linjer kode er designet til at læse linjerne i en tekst fra en fil.
  • Filen formodes at være placeret i D-drevet med navnet 'Example.txt'.
  • Men i vores situation eksisterer denne fil ikke rigtig. Så denne kode vil resultere i en fejl, når applikationen kører.

Fejlhåndtering i ASP.Net

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

Udfør nu koden i Visual Studio og du bør få nedenstående output.

Produktion:-

Fejlhåndtering i ASP.Net

Ovenstående side viser, at der er udløst en fejl i applikationen. Som et resultat bliver siden Error.html vist for brugeren.

ASP.NET Ubehandlet undtagelse

Selv i de bedste scenarier kan der være tilfælde af fejl, som bare ikke er forudset.

Antag, hvis en bruger browser til den forkerte side i applikationen. Dette er noget, der ikke kan forudsiges. I sådanne tilfælde kan ASP.Net omdirigere brugeren til fejlsiden.html.

Lad os se et eksempel på dette.

  • Vi kommer til at bruge vores samme 'DemoApplication', som har Errorpage.html.
  • Og vi vil prøve at se en webside, som ikke findes i vores applikation.
  • Vi bør omdirigeres til vores ErrorPage.html side i dette tilfælde. Lad os se trinene for at opnå dette.

Trin 1) Lad os arbejde på vores demoapplikation. Åbn filen Global.asax.cs fra Solution Explorer

ASP.NET Ubehandlet undtagelse

BEMÆRK: Global.asax.cs-filen bruges til at tilføje kode, der vil være gældende på alle sider i applikationen.

Trin 2) Tilføj nedenstående kodelinje til global.asax.cs. Disse linjer vil blive brugt til at kontrollere for fejl og vise siden ErrorPage.html i overensstemmelse hermed.

ASP.NET Ubehandlet undtagelse

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

Kodeforklaring:-

  1. Den første linje er Application_Error-hændelseshandleren. Denne hændelse kaldes, når der opstår en fejl i en applikation. Bemærk, at hændelsesnavnet skal være 'Application_Error'. Og parametrene skal være som vist ovenfor.
  2. Dernæst definerer vi et objekt af klassetypen HttpException. Dette er et standardobjekt, som vil indeholde alle detaljerne om fejlen. Vi bruger derefter Server.GetLastError-metoden til at få alle detaljerne om den sidste fejl, der opstod i applikationen.
  3. Vi tjekker derefter, om fejlkoden for den sidste fejl er 404. (Fejlkoden 404 er standardkoden, der returneres, når en bruger browser til en side, som ikke findes). Vi overfører derefter brugeren til siden ErrorPage.html, hvis fejlkoden matcher.

Kør nu koden i Visual Studio, og du bør få nedenstående output

Produktion:-

Gennemse siden http://localhost:53003/Demo1.aspx . Husk, at Demo1.aspx ikke findes i vores applikation. Du vil så få nedenstående output.

Ubehandlet undtagelse i ASP.NET

Ovenstående side viser, at der er udløst en fejl i applikationen. Som et resultat bliver siden Error.html vist for brugeren.

ASP.NET Fejllogning

Ved at logge applikationsfejl hjælper det udvikleren med at debugge og løse fejlen på et senere tidspunkt. ASP.Net har mulighed for at logge fejl. Dette gøres i Global.asax.cs-filen, når fejlen er fanget. Under indfangningsprocessen kan fejlmeddelelsen skrives ind i en logfil.

Lad os se et eksempel på dette.

  • Vi kommer til at bruge vores samme DemoApplication, som har Errorpage.html.
  • Og vi vil prøve at se en webside, som ikke findes i vores applikation.
  • Vi bør omdirigeres til vores ErrorPage.html side i dette tilfælde.
  • Og samtidig vil vi skrive fejlmeddelelsen til en logfil. Lad os se trinene for at opnå dette.

Trin 1) Lad os arbejde på vores demoapplikation. Åbn filen Global.asax.cs fra Solution Explorer

ASP.NET Fejllogning

Trin 2) Tilføj nedenstående kodelinje til global.asax.cs. Det vil tjekke for fejl og vise siden ErrorPage.html i overensstemmelse hermed. På samme tid vil vi også logge fejldetaljerne i en fil kaldet 'AllErrors.txt'. For vores eksempel vil vi skrive kode for at få denne fil oprettet på D-drevet.

ASP.NET Fejllogning

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

Kodeforklaring:-

  1. Den første linje er at få selve fejlen ved at bruge 'Server.GetLastError'-metoden. Denne tildeles derefter variablen 'exc'.
  2. Vi opretter derefter en tom strengvariabel kaldet 'str'. Vi får den faktiske fejlmeddelelse ved at bruge egenskaben 'exc.Message'. Egenskaben exc.Message vil have den nøjagtige meddelelse for enhver fejl, der opstår, når programmet kører. Denne tildeles derefter strengvariablen.
  3. Dernæst definerer vi filen kaldet 'AllErrrors.txt.' Det er her alle fejlmeddelelserne vil blive sendt. Vi skriver strengen 'str' som indeholder alle fejlmeddelelserne til denne fil.
  4. Til sidst overfører vi brugeren til filen ErrorPage.html.

Produktion:-

Gennemse siden http://localhost:53003/Demo1.aspx . Husk, at Demo1.aspx ikke findes i vores applikation. Du vil så få nedenstående output.

ASP.NET Fejllogning

Og på samme tid, hvis du åbner 'AllErrors.txt'-filen, vil du se nedenstående oplysninger.

ASP.NET Fejllogning

Fejlmeddelelsen kan derefter videregives til udvikleren på et senere tidspunkt til fejlfindingsformål.

Resumé

  • ASP.Net har mulighed for at udføre debugging og fejlhåndtering.
  • Fejlretning kan opnås ved at tilføje breakpoints til koden. Man kører derefter Start with Debugging-indstillingen i Visual Studio for at debugge koden.
  • Sporing er muligheden for at give flere oplysninger, mens du kører applikationen. Dette kan gøres på applikations- eller sideniveau.
  • På sideniveau skal koden Trace=true tilføjes sidedirektivet.
  • På applikationsniveau oprettes en ekstra side kaldet Trace.axd til applikationen. Dette giver alle de nødvendige sporingsoplysninger.