Asp.Net Sidnivåspårning, felsökning, felhantering [Exempel]

I alla applikationer kan fel uppstå under utvecklingsprocessen. Det är viktigt att kunna upptäcka fel i ett tidigt skede.

I Visual Studio är det möjligt att göra detta för ASP.Net-applikationer. Visual Studio används för felsökning och har felhanteringstekniker för ASP.Net.

Vad är felsökning i ASP.NET?

Felsökning är processen att lägga till brytpunkter i en applikation. Dessa brytpunkter används för att pausa körningen av ett program som körs. Detta gör att utvecklaren kan förstå vad som händer i ett program vid en viss tidpunkt.

Låt oss ta ett exempel på ett program. Programmet visar en sträng "Vi felsöker" för användaren. Anta att när vi kör programmet, av någon anledning, visas inte strängen. För att identifiera problemet måste vi lägga till en brytpunkt. Vi kan lägga till en brytpunkt till kodraden som visar strängen. Denna brytpunkt pausar körningen av programmet. Vid det här laget kan programmeraren se vad som eventuellt går fel. Programmeraren korrigerar programmet därefter.

Här i exemplet kommer vi att använda vår 'DemoApplication' som skapades i tidigare kapitel. I följande exempel kommer vi att se

  • Hur man får demoapplikationen att visa en sträng.
  • Hur man lägger till brytpunkter i en applikation.
  • Hur man felsöker applikationen med denna brytpunkt.

Hur man felsöker en applikation i ASP.NET

Nedan följer stegen för att göra en demoapplikation, lägga till brytpunkter och felsöka i ASP.Net:

Steg 1) Öppna programmet i Visual Studio
Låt oss först se till att vi har vår webbapplikation öppen i Visual Studio. Se till att DemoApplication är öppen i Visual Studio.

Felsök ett program i ASP.NET

Steg 2) Öppna nu filen Demo.aspx.cs och lägg till kodraden nedan.

  • Vi lägger bara till kodraden Response.Write för att visa en sträng.
  • Så när applikationen körs bör den visa strängen "Vi felsöker" i webbläsaren.

Felsök ett 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"); 
		  }
		}
}

Steg 3) Lägg till en brytpunkt i applikationen
En brytpunkt är en punkt i Visual Studio där du vill att programmet ska stoppas.

Felsök ett program i ASP.NET

  1. För att lägga till en brytpunkt måste du klicka på kolumnen där du vill att brytpunkten ska infogas. Så i vårt fall vill vi att vårt program ska stanna vid kodraden "Response.Write". Du behöver inte lägga till något kommando för att lägga till en brytpunkt. Du behöver bara klicka på raden där du vill lägga till en brytpunkt.
  2. När detta är gjort kommer du att märka att koden markeras med rött. Dessutom kommer en röd bubbla upp i kolumnen bredvid kodraden.

Notera: - Du kan lägga till flera brytpunkter i en applikation

Steg 4) Kör programmet i felsökningsläge
Nu måste du köra din applikation med felsökningsläge. I Visual Studio väljer du menyalternativet Debug->Start Debugging.

Felsök ett program i ASP.NET

Produktion:-

Felsök ett program i ASP.NET

När du utför alla steg korrekt kommer exekveringen av programmet att avbrytas. Visual Studio kommer att gå till brytpunkten och markera kodraden i gult.

Nu, om programmeraren känner att koden är felaktig, kan exekveringen stoppas. Koden kan sedan ändras därefter. För att fortsätta med programmet måste programmeraren klicka på F5-knappen på tangentbordet.

Vad är spårning i ASP.NET?

Applikationsspårning låter en se om några efterfrågade sidor resulterar i ett fel. När spårning är aktiverat läggs en extra sida som heter trace.axd till i programmet. (Se bilden nedan). Denna sida bifogas ansökan. Den här sidan visar alla förfrågningar och deras status.

Spårning i ASP.NET

Hur man aktiverar spårning för en applikation i ASP.NET

Låt oss titta på hur man aktiverar spårning för en ASP.Net-applikation:

Steg 1) Låt oss arbeta med vår "DemoApplication". Öppna filen web.config från Solution Explorer.

Aktivera spårning för ett program i ASP.NET

Steg 2) Lägg till kodraden nedan i filen Web.config.

Trace-satsen används för att möjliggöra spårning för applikationen.

  • "RequestLimit" i spårningssatsen används. Den anger antalet sidförfrågningar som måste spåras.
  • I vårt exempel ger vi en limit på 40. Vi ger limit eftersom ett högre värde kommer att försämra applikationens prestanda.

Aktivera spårning för ett program 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:-

Aktivera spårning för ett program i ASP.NET

Om du nu bläddrar till webbadressen – http://localhost:53003/trace.axd , kommer du att se informationen för varje begäran. Här kan du se om några fel uppstår i en applikation. Följande typer av information visas på sidan ovan

  1. Tidpunkten för begäran om webbsidan.
  2. Namnet på webbsidan som efterfrågas.
  3. Statuskoden för webbförfrågan. (statuskod 200 betyder att begäran är framgångsrik).
  4. Visa detaljer som du tillåter för att se mer information om webbförfrågan. Ett exempel på detta visas nedan. En viktig detaljerad information som tillhandahålls är rubrikinformationen. Denna information visar vilken information som skickas i rubriken på varje webbförfrågan.

Aktivera spårning för ett program i ASP.NET

Sidnivåspårning i ASP.NET

Sidnivåspårning i ASP.Net visar all allmän information om en webbsida när den bearbetas. Detta är användbart vid felsökning om en sida av någon anledning inte fungerar. Visual Studio tillhandahåller detaljerad information om olika aspekter av sidan och information såsom tiden för varje metod som anropas i webbförfrågan.

Om din webbapplikation till exempel har ett prestandaproblem kan den här informationen hjälpa dig att felsöka problemet. Denna information visas när programmet körs i Visual Studio.

Hur man aktiverar spårning på sidnivå i ASP.NET

Låt oss titta på hur man aktiverar spårning på sidnivå för en ASP.Net-applikation:

Steg 1) Låt oss arbeta med vår demoapplikation. Öppna filen demo.aspx från Solution Explorer

Sidnivåspårning i ASP.NET

Steg 2) Lägg till kodraden nedan för att aktivera sidspårning. I Siddeklarationen lägger du bara till raden Trace=”true”. Denna kodrad tillåter spårning på sidnivå.

Sidnivåspårning 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:-

Sidnivåspårning i ASP.NET

Nu när webbsidan Demo.aspx visas kommer du att få en hel del information om sidan. Information såsom tiden för varje aspekt av sidans livscykel visas på den här sidan.

Felhantering: Visar en anpassad felsida

In ASP.Net, kan du få anpassade felsidor att visas för användarna. Om en applikation innehåller någon form av fel kommer en anpassad sida att visa detta fel för användaren.

I vårt exempel ska vi först lägga till en HTML-sida. Den här sidan kommer att visa en sträng för användaren "Vi undersöker problemet". Vi kommer sedan att lägga till lite felkod på vår demo.aspx-sida så att felsidan visas.

Låt oss följa stegen nedan

Steg 1) Låt oss arbeta med vår demoapplikation. Låt oss lägga till en HTML-sida i applikationen

  1. Högerklicka på DemoApplication i Solution Explorer
  2. Välj menyalternativet 'Lägg till'->HTML-sida

Felhantering i ASP.Net

Steg 2) I nästa steg måste vi ge ett namn till den nya HTML-sidan.

  1. Ange namnet som "ErrorPage".
  2. Klicka på knappen 'OK' för att fortsätta.

Felhantering i ASP.Net

Steg 3) Felsidan öppnas automatiskt i Visual Studio. Om du går till Solution Explorer kommer du att se filen tillagd.

Felhantering i ASP.Net

Lägg till kodraden "Vi undersöker problemet" på HTML-sidan. Du behöver inte stänga HTML-filen innan du gör ändringen i web.config-filen.

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

Steg 4) Nu måste du göra en ändring i web.config-filen. Denna ändring kommer att meddela att när ett fel uppstår i applikationen måste den anpassade felsidan visas.

Taggen "customErrors" gör det möjligt att definiera en anpassad felsida. Egenskapen defaultRedirect är inställd på namnet på vår anpassade felsida som skapades i föregående steg.

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

Steg 5) Låt oss nu lägga till en felaktig kod på sidan demo.aspx.cs. Öppna den här sidan genom att dubbelklicka på filen i Solution Explorer

Felhantering i ASP.Net

Lägg till koden nedan i filen Demo.aspx.cs.

  • Dessa kodrader är utformade för att läsa raderna i en text från en fil.
  • Filen är tänkt att finnas i D-enheten med namnet 'Example.txt'.
  • Men i vår situation finns den här filen inte riktigt. Så den här koden kommer att resultera i ett fel när programmet körs.

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

Kör nu koden in Visual Studio och du bör få utdata nedan.

Produktion:-

Felhantering i ASP.Net

Ovanstående sida visar att ett fel har utlösts i applikationen. Som ett resultat visas sidan Error.html för användaren.

ASP.NET Ohanterat undantag

Även i de bästa scenarierna kan det finnas fall av fel som helt enkelt inte är förutsedda.

Antag om en användare bläddrar till fel sida i programmet. Detta är något som inte går att förutse. I sådana fall kan ASP.Net omdirigera användaren till errorpage.html.

Låt oss se ett exempel på detta.

  • Vi kommer att använda samma "DemoApplication" som har Errorpage.html.
  • Och vi kommer att försöka se en webbsida som inte finns i vår applikation.
  • Vi bör omdirigeras till vår ErrorPage.html-sida i det här fallet. Låt oss se stegen för att uppnå detta.

Steg 1) Låt oss arbeta med vår demoapplikation. Öppna filen Global.asax.cs från Solution Explorer

ASP.NET Ohanterat undantag

ANMÄRKNINGAR: Global.asax.cs-filen används för att lägga till kod som kommer att gälla på alla sidor i programmet.

Steg 2) Lägg till kodraden nedan i global.asax.cs. Dessa rader kommer att användas för att leta efter fel och visa sidan ErrorPage.html därefter.

ASP.NET Ohanterat undantag

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

Kodförklaring:-

  1. Den första raden är händelsehanteraren Application_Error. Denna händelse anropas när ett fel uppstår i en applikation. Observera att händelsenamnet måste vara 'Application_Error'. Och parametrarna bör vara som visas ovan.
  2. Därefter definierar vi ett objekt av klasstypen HttpException. Detta är ett standardobjekt som kommer att innehålla alla detaljer om felet. Vi använder sedan Server.GetLastError-metoden för att få alla detaljer om det senaste felet som inträffade i applikationen.
  3. Vi kontrollerar sedan om felkoden för det senaste felet är 404. (Felkoden 404 är standardkoden som returneras när en användare bläddrar till en sida som inte hittas). Vi överför sedan användaren till sidan ErrorPage.html om felkoden matchar.

Kör nu koden i Visual Studio och du bör få utdata nedan

Produktion:-

Bläddra på sidan http://localhost:53003/Demo1.aspx . Kom ihåg att Demo1.aspx inte finns i vår applikation. Du får då utdata nedan.

Ohanterat undantag i ASP.NET

Ovanstående sida visar att ett fel har utlösts i applikationen. Som ett resultat visas sidan Error.html för användaren.

ASP.NET Felloggning

Genom att logga programfel hjälper det utvecklaren att felsöka och lösa felet vid en senare tidpunkt. ASP.Net har möjlighet att logga fel. Detta görs i Global.asax.cs-filen när felet registreras. Under fångstprocessen kan felmeddelandet skrivas in i en loggfil.

Låt oss se ett exempel på detta.

  • Vi kommer att använda vår samma DemoApplication som har Errorpage.html.
  • Och vi kommer att försöka se en webbsida som inte finns i vår applikation.
  • Vi bör omdirigeras till vår ErrorPage.html-sida i det här fallet.
  • Och samtidigt kommer vi att skriva felmeddelandet till en loggfil. Låt oss se stegen för att uppnå detta.

Steg 1) Låt oss arbeta med vår demoapplikation. Öppna filen Global.asax.cs från Solution Explorer

ASP.NET Felloggning

Steg 2) Lägg till kodraden nedan i global.asax.cs. Den kommer att leta efter fel och visa sidan ErrorPage.html i enlighet med detta. Samtidigt kommer vi att logga feldetaljerna i en fil som heter 'AllErrors.txt'. För vårt exempel kommer vi att skriva kod för att få den här filen skapad på D-enheten.

ASP.NET Felloggning

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

Kodförklaring:-

  1. Den första raden är att få själva felet genom att använda 'Server.GetLastError'-metoden. Denna tilldelas sedan variabeln 'exc'.
  2. Vi skapar sedan en tom strängvariabel som heter 'str'. Vi får det faktiska felmeddelandet med egenskapen 'exc.Message'. Egenskapen exc.Message kommer att ha det exakta meddelandet för alla fel som uppstår när programmet körs. Denna tilldelas sedan strängvariabeln.
  3. Därefter definierar vi filen som heter 'AllErrrors.txt.' Det är hit alla felmeddelanden kommer att skickas. Vi skriver strängen 'str' som innehåller alla felmeddelanden till denna fil.
  4. Slutligen överför vi användaren till filen ErrorPage.html.

Produktion:-

Bläddra på sidan http://localhost:53003/Demo1.aspx . Kom ihåg att Demo1.aspx inte finns i vår applikation. Du får då utdata nedan.

ASP.NET Felloggning

Och samtidigt, om du öppnar filen 'AllErrors.txt' kommer du att se nedanstående information.

ASP.NET Felloggning

Felmeddelandet kan sedan skickas vidare till utvecklaren vid en senare tidpunkt i felsökningssyfte.

Sammanfattning

  • ASP.Net har möjlighet att utföra felsökning och felhantering.
  • Felsökning kan uppnås genom att lägga till brytpunkter i koden. Man kör sedan alternativet Börja med felsökning i Visual Studio för att felsöka koden.
  • Spårning är möjligheten att ge mer information när programmet körs. Detta kan göras på applikations- eller sidnivå.
  • På sidnivå måste koden Trace=true läggas till i siddirektivet.
  • På applikationsnivå skapas en extra sida som heter Trace.axd för applikationen. Detta ger all nödvändig spårningsinformation.