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.
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.
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.
- 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.
- 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.
Kimenet:-
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ó.
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.
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.
<?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:-
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
- A weboldal igénylésének időpontja.
- A kért weboldal neve.
- A webes kérés állapotkódja. (a 200-as állapotkód azt jelenti, hogy a kérés sikeres).
- 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ó.
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
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.
<%@ 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:-
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
- Kattintson a jobb gombbal a DemoApplication-re a Solution Explorerben
- Válassza a 'Hozzáadás'->HTML oldal menüpontot
Step 2) A következő lépésben nevet kell adnunk az új HTML oldalnak.
- Adja meg a nevet "ErrorPage"-ként.
- A folytatáshoz kattintson az 'OK' gombra.
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.
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.
<!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.
<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
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.
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:-
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
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.
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: -
- 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.
- 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.
- 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.
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
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.
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: -
- 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.
- 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.
- 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.
- 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.
Ugyanakkor, ha megnyitja az 'AllErrors.txt' fájlt, az alábbi információkat fogja látni.
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.