Asp.Net oldalszintű nyomkövetés, hibakeresés, hibakezelés [Példa]

Minden alkalmazásban előfordulhatnak hibák a fejlesztési folyamat során. Fontos, hogy a hibákat korai szakaszban fel tudjuk fedezni.

A Visual Studioban ez lehetséges az ASP.Net alkalmazásoknál. A Visual Studio a hibakereséshez használatos, és rendelkezik hibakezelési technikákkal az ASP.Net számára.

Mi az a hibakeresés az ASP.NET-ben?

A hibakeresés töréspontok hozzáadásának folyamata egy alkalmazáshoz. Ezeket a töréspontokat egy futó program végrehajtásának szüneteltetésére használják. Ez lehetővé teszi a fejlesztő számára, hogy megértse, mi történik egy programban egy adott időpontban.

Vegyünk egy példát egy programra. A program egy „Hibakeresést végez” karakterláncot jelenít meg a felhasználó számára. Tegyük fel, hogy amikor az alkalmazást futtatjuk, valamilyen oknál fogva a karakterlánc nem jelenik meg. A probléma azonosításához töréspontot kell hozzáadnunk. Hozzáadhatunk egy töréspontot a karakterláncot megjelenítő kódsorhoz. Ez a töréspont szünetelteti a program végrehajtását. Ezen a ponton a programozó láthatja, hogy mi lehet a hiba. A programozó ennek megfelelően korrigálja a programot.

A példában a korábbi fejezetekben létrehozott „DemoApplication”-ünket fogjuk használni. A következő példában látni fogjuk

  • Hogyan lehet a demóalkalmazásban karakterláncot megjeleníteni.
  • Hogyan adhatunk töréspontokat egy alkalmazáshoz.
  • Az alkalmazás hibakeresése ezzel a törésponttal.

Alkalmazások hibakeresése az ASP.NET-ben

Az alábbiakban bemutatjuk a bemutatóalkalmazás létrehozásának, a töréspontok hozzáadásának és a hibakeresésnek az ASP.Netben lépéseit:

1. lépés) Nyissa meg az alkalmazást a Visual Studióban
Először győződjön meg arról, hogy webalkalmazásunk meg van nyitva a Visual Studióban. Győződjön meg arról, hogy a DemoApplication meg van nyitva a Visual Studióban.

Egy alkalmazás hibakeresése az ASP.NET-ben

2. lépés) Most nyissa meg a Demo.aspx.cs fájlt, és adja hozzá az alábbi kódsort.

  • Csak a Response.Write kódsort adjuk hozzá egy karakterlánc megjelenítéséhez.
  • Tehát amikor az alkalmazás fut, meg kell jelenítenie a „Hibakeresés” szöveget a böngészőben.

Egy alkalmazás hibakeresése az ASP.NET-ben

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

3. lépés) Adjon hozzá egy töréspontot az alkalmazáshoz
A töréspont a Visual Studio azon pontja, ahol a program végrehajtását le kell állítani.

Egy alkalmazás hibakeresése az ASP.NET-ben

  1. Töréspont hozzáadásához kattintson arra az oszlopra, ahová a töréspontot be szeretné illeszteni. Így esetünkben azt szeretnénk, hogy programunk a „Response.Write” kódsornál álljon meg. Nincs szükség parancs hozzáadása töréspont hozzáadásához. Csak rá kell kattintania arra a sorra, amelyhez töréspontot szeretne hozzáadni.
  2. Ha ez megtörtént, észre fogja venni, hogy a kód piros színnel jelenik meg. Ezenkívül egy piros buborék jelenik meg a kódsor melletti oszlopban.

Jegyzet: - Egy alkalmazáshoz több töréspontot is hozzáadhat

4. lépés) Futtassa az alkalmazást Hibakeresés módban
Most futtatnia kell az alkalmazást a hibakeresési mód használatával. A Visual Studio programban válassza a Hibakeresés-> Hibakeresés indítása menüpontot.

Egy alkalmazás hibakeresése az ASP.NET-ben

Kimenet:-

Egy alkalmazás hibakeresése az ASP.NET-ben

Ha minden lépést helyesen hajt végre, a program végrehajtása megszakad. A Visual Studio a törésponthoz lép, és sárga színnel jelöli a kódsort.

Most, ha a programozó úgy érzi, hogy a kód helytelen, a végrehajtás leállítható. A kód ezután ennek megfelelően módosítható. A program folytatásához a programozónak rá kell kattintania az F5 gombra a billentyűzeten.

Mi az a nyomkövetés az ASP.NET-ben?

Az alkalmazáskövetés lehetővé teszi annak ellenőrzését, hogy a kért oldalak hibát okoznak-e. Ha a nyomkövetés engedélyezve van, egy trace.axd nevű extra oldal kerül az alkalmazáshoz. (Lásd az alábbi képet). Ezt az oldalt a pályázathoz csatoltuk. Ezen az oldalon az összes kérés és azok állapota látható.

Nyomon követés az ASP.NET-ben

A nyomkövetés engedélyezése egy alkalmazás számára az ASP.NET-ben

Nézzük meg, hogyan engedélyezhető a nyomkövetés egy ASP.Net alkalmazás:

Step 1) Dolgozzunk a „DemoApplication”-ünkön. Nyissa meg a web.config fájlt a Solution Explorerből.

Egy alkalmazás nyomkövetésének engedélyezése az ASP.NET-ben

Step 2) Adja hozzá az alábbi kódsort a Web.config fájlhoz.

A nyomkövetési utasítás az alkalmazás nyomkövetésének engedélyezésére szolgál.

  • A „requestLimit” a nyomkövetési utasításban használatos. Meghatározza a nyomon követendő oldalkérések számát.
  • Példánkban 40-es korlátot adunk meg. Azért adunk meg limitet, mert a magasabb érték rontja az alkalmazás teljesítményét.

Egy alkalmazás nyomkövetésének engedélyezése az ASP.NET-ben

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

Futtassa a „demoalkalmazást” a Visual Studióban.

Kimenet:-

Egy alkalmazás nyomkövetésének engedélyezése az ASP.NET-ben

Ha most megkeresi az URL-t – http://localhost:53003/trace.axd , látni fogja az egyes kérések adatait. Itt láthatja, hogy előfordul-e hiba az alkalmazásban. A fenti oldalon a következő típusú információk láthatók

  1. A weboldal igénylésének időpontja.
  2. A kért weboldal neve.
  3. A webes kérés állapotkódja. (a 200-as állapotkód azt jelenti, hogy a kérés sikeres).
  4. A Részletek megtekintése, amellyel további részleteket tekinthet meg a webes kérelemről. Az alábbiakban egy példa látható erre. Az egyik fontos részletes információ a fejléc információ. Ez az információ megmutatja, hogy mi az egyes webes kérések fejlécében elküldött információ.

Egy alkalmazás nyomkövetésének engedélyezése az ASP.NET-ben

Oldalszintű nyomkövetés az ASP.NET-ben

Oldalszintű nyomkövetés Az ASP.Netben a weboldal összes általános információja megjelenik a feldolgozás alatt. Ez hasznos a hibakeresés során, ha egy oldal valamilyen okból nem működik. A Visual Studio részletes információkat nyújt az oldal különféle aspektusairól, és olyan információkat nyújt, mint például a webes kérésben meghívott egyes metódusok ideje.

Például, ha webalkalmazásának teljesítményproblémái vannak, ez az információ segíthet a probléma hibakeresésében. Ez az információ akkor jelenik meg, amikor az alkalmazás a Visual Studioban fut.

Az oldalszintű nyomkövetés engedélyezése az ASP.NET-ben

Nézzük meg, hogyan engedélyezhető az oldalszintű nyomkövetés egy ASP.Net alkalmazásnál:

Step 1) Dolgozzunk a DemoApplication-ünkön. Nyissa meg a demo.aspx fájlt a Solution Explorerből

Oldalszintű nyomkövetés az ASP.NET-ben

Step 2) Adja hozzá az alábbi kódsort az oldalkövetés engedélyezéséhez. Az oldal deklarációjában csak fűzze hozzá a Trace=”true” sort. Ez a kódsor lehetővé teszi az oldalszintű nyomkövetést.

Oldalszintű nyomkövetés az ASP.NET-ben

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

Futtassa az alkalmazást a Visual Studióban.

Kimenet:-

Oldalszintű nyomkövetés az ASP.NET-ben

Most, amikor megjelenik a Demo.aspx weboldal, rengeteg információt fog kapni az oldalról. Ezen az oldalon olyan információk jelennek meg, mint az oldal életciklusának egyes aspektusaihoz tartozó idő.

Hibakezelés: Egyéni hibaoldal megjelenítése

In ASP.Net, akkor egyéni hibaoldalakat jeleníthet meg a felhasználók számára. Ha egy alkalmazás bármilyen hibát tartalmaz, egy egyéni oldal megjeleníti ezt a hibát a felhasználó számára.

Példánkban először egy HTML oldalt fogunk hozzáadni. Ez az oldal egy karakterláncot jelenít meg a felhasználó számára: „Megvizsgáljuk a problémát”. Ezután hozzáadunk néhány hibakódot a demo.aspx oldalunkhoz, hogy a hibaoldal megjelenjen.

Kövessük az alábbi lépéseket

Step 1) Dolgozzunk a DemoApplication-ünkön. Adjunk hozzá egy HTML oldalt az alkalmazáshoz

  1. Kattintson a jobb gombbal a DemoApplication-re a Solution Explorerben
  2. Válassza a 'Hozzáadás'->HTML oldal menüpontot

Hibakezelés az ASP.Netben

Step 2) A következő lépésben nevet kell adnunk az új HTML oldalnak.

  1. Adja meg a nevet "ErrorPage"-ként.
  2. A folytatáshoz kattintson az 'OK' gombra.

Hibakezelés az ASP.Netben

Step 3) A hibaoldal automatikusan megnyílik a Visual Studióban. Ha a Solution Explorerbe lép, látni fogja a hozzáadott fájlt.

Hibakezelés az ASP.Netben

Adja hozzá a „Mi vizsgáljuk a problémát” kódsort a HTML-oldalhoz. A web.config fájl módosítása előtt nem kell bezárnia a HTML-fájlt.

Hibakezelés az ASP.Netben

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

Step 4) Most módosítania kell a web.config fájlt. Ez a módosítás értesíti, hogy amikor hiba történik az alkalmazásban, meg kell jeleníteni az egyéni hibaoldalt.

A „customErrors” címke lehetővé teszi egyéni hibaoldal meghatározását. A defaultRedirect tulajdonság az előző lépésben létrehozott egyéni hibaoldal nevére van állítva.

Hibakezelés az ASP.Netben

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

		
	</system.web>
</configuration>

Step 5) Most adjunk hozzá néhány hibás kódot a demo.aspx.cs oldalhoz. Nyissa meg ezt az oldalt, ha duplán kattint a fájlra a Solution Explorer alkalmazásban

Hibakezelés az ASP.Netben

Adja hozzá az alábbi kódot a Demo.aspx.cs fájlhoz.

  • Ezeket a kódsorokat úgy tervezték, hogy egy fájlból kiolvassák a szöveg sorait.
  • A fájlnak a D meghajtón kell lennie, „Példa.txt” néven.
  • De a mi helyzetünkben ez a fájl valójában nem létezik. Tehát ez a kód hibát fog eredményezni, amikor az alkalmazás fut.

Hibakezelés az ASP.Netben

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

Most futtassa a kódot Visual Studio és meg kell kapnia az alábbi kimenetet.

Kimenet:-

Hibakezelés az ASP.Netben

A fenti oldal azt mutatja, hogy hiba történt az alkalmazásban. Ennek eredményeként az Error.html oldal jelenik meg a felhasználó számára.

ASP.NET kezeletlen kivétel

Még a legjobb forgatókönyv esetén is előfordulhatnak olyan hibák, amelyeket nem látunk előre.

Tegyük fel, hogy a felhasználó rossz oldalra böngészik az alkalmazásban. Ez olyan dolog, amit nem lehet előre megjósolni. Ilyen esetekben az ASP.Net átirányíthatja a felhasználót az errorpage.html oldalra.

Lássunk erre egy példát.

  • Ugyanazt a "DemoApplication"-ünket fogjuk használni, amely az Errorpage.html-t tartalmazza.
  • És megpróbálunk olyan weboldalt megtekinteni, amely nem létezik az alkalmazásunkban.
  • Ebben az esetben át kell irányítani minket az ErrorPage.html oldalunkra. Lássuk, milyen lépéseket lehet elérni ennek eléréséhez.

Step 1) Dolgozzunk a DemoApplication-ünkön. Nyissa meg a Global.asax.cs fájlt a Solution Explorerből

ASP.NET kezeletlen kivétel

JEGYZET: A global.asax.cs fájl olyan kód hozzáadására szolgál, amely az alkalmazás összes oldalán alkalmazható lesz.

Step 2) Adja hozzá az alábbi kódsort a global.asax.cs fájlhoz. Ezek a sorok a hibák ellenőrzésére és az ErrorPage.html oldal megjelenítésére szolgálnak.

ASP.NET kezeletlen kivétel

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

Kód magyarázata: -

  1. Az első sor az Application_Error eseménykezelő. Ezt az eseményt a rendszer minden alkalommal meghívja, amikor hiba történik egy alkalmazásban. Vegye figyelembe, hogy az esemény nevének „Application_Error”-nak kell lennie. És a paramétereknek a fentieknek kell lenniük.
  2. Ezután definiálunk egy HttpException osztálytípusú objektumot. Ez egy szabványos objektum, amely a hiba összes részletét tartalmazza. Ezután a Server.GetLastError metódust használjuk, hogy megkapjuk az alkalmazásban előforduló legutóbbi hiba összes részletét.
  3. Ezután ellenőrizzük, hogy az utolsó hiba hibakódja 404-e. (A 404-es hibakód az a szabványos kód, amelyet akkor kap vissza, amikor a felhasználó olyan oldalra böngészik, amelyet nem talál). Ezután a felhasználót az ErrorPage.html oldalra helyezzük át, ha a hibakód megegyezik.

Most futtassa a kódot a Visual Studio-ban, és meg kell kapnia az alábbi kimenetet

Kimenet:-

Böngésszen az oldalon http://localhost:53003/Demo1.aspx . Ne feledje, hogy a Demo1.aspx nem létezik az alkalmazásunkban. Ezután megkapja az alábbi kimenetet.

Kezeletlen kivétel az ASP.NET-ben

A fenti oldal azt mutatja, hogy hiba történt az alkalmazásban. Ennek eredményeként az Error.html oldal jelenik meg a felhasználó számára.

ASP.NET Hibanaplózás

Az alkalmazáshibák naplózásával segít a fejlesztőnek a hibakeresésben és a hiba későbbi megoldásában. Az ASP.Net képes a hibák naplózására. Ez a hiba rögzítésekor a Global.asax.cs fájlban történik. A rögzítési folyamat során a hibaüzenet naplófájlba írható.

Lássunk erre egy példát.

  • Ugyanazt a DemoApplication-ünket fogjuk használni, amely az Errorpage.html-t tartalmazza.
  • És megpróbálunk olyan weboldalt megtekinteni, amely nem létezik az alkalmazásunkban.
  • Ebben az esetben át kell irányítani minket az ErrorPage.html oldalunkra.
  • Ezzel egyidejűleg a hibaüzenetet egy naplófájlba írjuk. Lássuk, milyen lépéseket lehet elérni ennek eléréséhez.

Step 1) Dolgozzunk a DemoApplication-ünkön. Nyissa meg a Global.asax.cs fájlt a Solution Explorerből

ASP.NET Hibanaplózás

Step 2) Adja hozzá az alábbi kódsort a global.asax.cs fájlhoz. Ellenőrzi a hibákat, és ennek megfelelően megjeleníti az ErrorPage.html oldalt. Ezzel egyidejűleg naplózzuk a hiba részleteit egy "AllErrors.txt" fájlban. Példánkban kódot fogunk írni, hogy ez a fájl létrejöjjön a D meghajtón.

ASP.NET Hibanaplózás

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

Kód magyarázata: -

  1. Az első sor maga a hiba beszerzése a „Server.GetLastError” metódus használatával. Ezt azután az „exc” változóhoz rendeljük.
  2. Ezután létrehozunk egy üres karakterlánc-változót, az úgynevezett „str”. A tényleges hibaüzenetet az 'exc.Message' tulajdonság használatával kapjuk meg. Az exc.Message tulajdonságban az alkalmazás futtatásakor fellépő hibák pontos üzenete lesz. Ez ezután hozzá van rendelve a karakterlánc változóhoz.
  3. Ezután meghatározzuk az "AllErrrors.txt" fájlt. Ide kerül az összes hibaüzenet. Az összes hibaüzenetet tartalmazó str stringet írjuk ebbe a fájlba.
  4. Végül átvisszük a felhasználót az ErrorPage.html fájlba.

Kimenet:-

Böngésszen az oldalon http://localhost:53003/Demo1.aspx . Ne feledje, hogy a Demo1.aspx nem létezik az alkalmazásunkban. Ezután megkapja az alábbi kimenetet.

ASP.NET Hibanaplózás

Ugyanakkor, ha megnyitja az 'AllErrors.txt' fájlt, az alábbi információkat fogja látni.

ASP.NET Hibanaplózás

A hibaüzenet ezután egy későbbi időpontban továbbítható a fejlesztőnek hibakeresési célból.

Összegzésként

  • Az ASP.Net rendelkezik hibakeresési és hibakezelési lehetőséggel.
  • A hibakeresés úgy érhető el, hogy töréspontokat adunk a kódhoz. Ezután futtassa a Start with Debugging opciót a Visual Studio programban a kód hibakereséséhez.
  • A nyomkövetés az a lehetőség, hogy az alkalmazás futtatása közben több információt nyújtson. Ez megtehető az alkalmazás vagy az oldal szintjén.
  • Oldalszinten a Trace=true kódot hozzá kell adni az oldalirányelvhez.
  • Az alkalmazás szintjén egy Trace.axd nevű extra oldal jön létre az alkalmazás számára. Ez biztosítja az összes szükséges nyomkövetési információt.