Asp.Net sidnivåspårning, felsökning, felhantering (exempel)

Innehållsförteckning:

Anonim

I alla applikationer uppstår fel 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.

I den här handledningen lär du dig-

  • Vad är felsökning i ASP.NET?
  • Vad är spårning i ASP.NET?
  • Sidnivåspårning
  • Felhantering: Visa en anpassad felsida
  • ASP.NET Unhandled Undantag
  • ASP.NET Felloggning

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 pågående program. 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 strängen "Vi debuggar" till användaren. Antag att när vi kör applikationen, 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 i kodraden som visar strängen. Denna brytpunkt pausar körningen av programmet. Vid denna tidpunkt 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 demo-applikationen att visa en sträng.
  • Hur man lägger till brytpunkter i en applikation.
  • Hur du felsöker programmet med hjälp av denna brytpunkt.

Steg 1) 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.

Steg 2) Öppna nu filen Demo.aspx.cs och lägg till nedanstående kodrad.

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

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åt oss nu lägga till en brytpunkt. En brytpunkt är en punkt i Visual Studio där du vill att körningen av programmet ska stoppas.

  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 klart kommer du att märka att koden markeras i rött. Dessutom kommer en röd bubbla upp i kolumnen bredvid kodraden.

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

Steg 4) Nu måste du köra din applikation med felsökningsläge. I Visual Studio väljer du menyalternativet Felsökning-> Starta felsökning.

Produktion:-

När du utför alla steg korrekt kommer programmet att brytas. Visual Studio går till brytpunkten och markerar kodraden i gult.

Om programmeraren nu känner att koden är felaktig kan körningen stoppas. Koden kan sedan ändras i enlighet med detta. För att fortsätta programmet måste programmeraren klicka på F5-knappen på tangentbordet.

Vad är spårning i ASP.NET?

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

Låt oss titta på hur du aktiverar spårning för en applikation.

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

Steg 2) Lägg till nedanstående kodrad i filen Web.config.

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

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

Kör "demoapplikationen" i Visual Studio.

Produktion:-

Om du nu bläddrar till URL: en - http: // localhost: 53003 / trace.axd ser du 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å ovanstående sida

  1. Tidpunkten för begäran om webbsidan.
  2. Namnet på den webbsida som begärs.
  3. Webbbegärans statuskod. (statuskod 200 betyder att begäran lyckas).
  4. Visa detaljer som du tillåter för att visa mer information om webbförfrågan. Ett exempel på detta visas nedan. En viktig detaljerad information som ges är rubrikinformationen. Denna information visar vilken information som skickas i rubriken för varje webbförfrågan.

Sidnivåspårning

Sidspårning visar all allmän information om en webbsida när den behandlas. Detta är användbart vid felsökning om en sida inte fungerar av någon anledning.

Visual Studio ger detaljerad information om olika aspekter på sidan. Information som tiden för varje metod som anropas i webbförfrågan. Till exempel, om din webbapplikation har ett prestandaproblem kan den här informationen hjälpa till att felsöka problemet. Den här informationen visas när programkörningen är i Visual Studio.

Låt oss titta på hur du aktiverar spårning för en applikation på sidnivå.

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

Steg 2) Lägg till nedanstående rad kod för att aktivera sidspårning. I siddeklarationen, lägg bara till raden Trace = "true". Den här kodraden tillåter spårning av sidnivå.

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

Nu när webbsidan Demo.aspx visas får du mycket information om sidan. Information som tiden för varje aspekt av sidans livscykel visas på denna sida.

Felhantering: Visa en anpassad felsida

I ASP.Net kan du visa anpassade felsidor för användarna. Om ett program innehåller något slags fel visar en anpassad sida detta fel för användaren.

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

Låt oss följa nedanstående steg

Steg 1) Låt oss arbeta med vår DemoApplication. 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

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

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

Steg 3) Errorpage öppnas automatiskt i Visual Studio. Om du går till Solution Explorer ser du filen läggas till.

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

We are looking into the problem

Steg 4) Nu måste du göra en ändring i filen web.config. Denna ändring meddelar att varje gång ett fel inträffar i applikationen måste den anpassade felsidan visas.

Med taggen 'customErrors' kan du definiera en anpassad felsida. StandardRedirect-egenskapen är inställd på namnet på sidan för vårt anpassade fel som skapades i föregående steg.

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

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 ska vara placerad i D-enheten med namnet 'Exempel.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.

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 i Visual Studio och du ska få utdata nedan.

Produktion:-

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

ASP.NET Unhandled Undantag

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

Antag att om en användare bläddrar till fel sida i applikationen. Detta är något som inte kan förutses. 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 DemoApplication. Öppna filen Global.asax.cs från Solution Explorer

OBS ! Den globala.asax.cs-filen används för att lägga till kod som är tillämplig på alla sidor i applikationen.

Steg 2) Lägg till nedanstående kodrad till global.asax.cs. Dessa rader kommer att användas för att söka efter fel och visa sidan ErrorPage.html därefter.

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 Application_Error-händelsehanteraren. Den här händelsen anropas när ett fel inträffar i en applikation. Observera att händelsens namn måste vara 'Application_Error'. Och parametrarna ska vara som visas ovan.
  2. Därefter definierar vi ett objekt av klasstypen HttpException. Detta är ett standardobjekt som innehåller alla detaljer i felet. Vi använder sedan metoden Server.GetLastError 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 ska 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.

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

ASP.NET Felloggning

Genom att logga applikationsfel 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 filen Global.asax.cs när felet fångas upp. Under inspelningsprocessen kan felmeddelandet skrivas in i en loggfil.

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.
  • Och samtidigt skriver vi felmeddelandet till en loggfil. Låt oss se stegen för att uppnå detta.

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

Steg 2) Lägg till nedanstående kodrad till global.asax.cs. Den söker efter fel och visar sidan ErrorPage.html i enlighet med detta. Samtidigt loggar vi felinformationen i en fil som heter 'AllErrors.txt.' För vårt exempel kommer vi att skriva kod för att den här filen ska skapas på D-enheten.

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 metoden 'Server.GetLastError'. Detta 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 har det exakta meddelandet för alla fel som uppstår när programmet körs. Detta tilldelas sedan strängvariabeln.
  3. Därefter definierar vi filen som heter 'AllErrrors.txt.' Det är här alla felmeddelanden kommer att skickas. Vi skriver strängen 'str' som innehåller alla felmeddelanden till den här filen.
  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.

Och samtidigt, om du öppnar filen 'AllErrors.txt' kommer du att se informationen nedan.

Felmeddelandet kan sedan skickas vidare till utvecklaren vid en senare tidpunkt för felsökningsändamål.

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 Starta med felsökning i Visual Studio för att felsöka koden.
  • Spårning är möjligheten att ge mer information när du kör applikationen. 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.