Asp.Net oldalszint-követés, hibakeresés, hibakezelés (példa)

Tartalomjegyzék:

Anonim

Bármely alkalmazásban hibák fordulhatnak elő a fejlesztési folyamat során. Fontos, hogy a hibákat korán fel lehessen fedezni.

A Visual Studio-ban erre lehetőség van az ASP.Net alkalmazásokhoz. A Visual Studio a hibakereséshez használható, és hibakezelési technikákkal rendelkezik az ASP.Net számára.

Ebben az oktatóanyagban megtanulja-

  • Mi a hibakeresés az ASP.NET-ben?
  • Mi a nyomkövetés az ASP.NET-ben?
  • Oldalszint-követés
  • Hibakezelés: Egyéni hibaoldal megjelenítése
  • ASP.NET kezeletlen kivétel
  • ASP.NET Hiba a naplózás során

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

A hibakeresés a töréspontok alkalmazáshoz való hozzáadásának folyamata. 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és" szöveget jelenít meg a felhasználó számára. Tegyük fel, hogy az alkalmazás futtatásakor valamilyen oknál fogva a karakterlánc nem jelenik meg. A probléma azonosításához hozzá kell adnunk egy töréspontot. Hozzáadhatunk egy töréspontot ahhoz a kódsorhoz, amely megjeleníti a karakterláncot. Ez a töréspont szünetelteti a program végrehajtását. Ezen a ponton a programozó láthatja, hogy mi lehet a baj. A programozó ennek megfelelően kijavítja a programot.

Itt a példában a korábbi fejezetekben létrehozott "DemoApplication" -t fogjuk használni. A következő példában meglátjuk

  • Hogyan lehet a demo alkalmazás karakterláncot megjeleníteni.
  • Hogyan adhat meg töréspontokat egy alkalmazáshoz.
  • Az alkalmazás hibakeresése ezzel a törésponttal.

1. lépés : Először győződjünk meg arról, hogy webes alkalmazásunk nyitva van a Visual Studióban. Győződjön meg arról, hogy a DemoApplication meg van nyitva a Visual Studio alkalmazásban.

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

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

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) Most adjunk hozzá egy töréspontot. A töréspont a Visual Studio olyan pontja, ahol le akarja állítani a program végrehajtását.

  1. Töréspont hozzáadásához kattintson arra az oszlopra, ahová be akarja illeszteni a töréspontot. Tehát esetünkben azt akarjuk, hogy programunk a "Response.Write" kódsornál álljon meg. Töréspont hozzáadásához nem kell parancsot hozzáadnia. Csak arra a sorra kell kattintania, amelyre töréspontot szeretne hozzáadni.
  2. Miután ez megtörtént, észreveszi, hogy a kódot piros színnel jelölik. Ezenkívül egy piros buborék jelenik meg a kódsor melletti oszlopban.

Megjegyzés: - Több töréspontot is hozzáadhat egy alkalmazáshoz

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

Kimenet:-

Ha az összes lépést helyesen hajtja végre, a program végrehajtása megszakad. A Visual Studio a töréspontra 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ó. Ezután a kód ennek megfelelően módosítható. A program folytatásához a programozónak az F5 gombra kell kattintania a billentyűzeten.

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

Az alkalmazáskövetés lehetővé teszi annak megtekintését, hogy a kért oldalak hibát eredményeznek-e. Ha a nyomkövetés engedélyezve van, akkor egy további, trace.axd nevű oldal kerül az alkalmazáshoz. (Lásd az alábbi képet). Ez az oldal az alkalmazáshoz van csatolva. Ezen az oldalon minden kérés és azok állapota megjelenik.

Nézzük meg, hogyan lehet engedélyezni a nyomkövetést egy alkalmazás számára.

1. lépés: Dolgozzunk a "DemoApplication" -n. Nyissa meg a web.config fájlt a Megoldáskezelőben.

2. lépés: Adja hozzá az alábbi kódsort a Web.config fájlhoz.

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

  • A 'requestLimit' a nyomkövetésben szerepel. Megadja a követni kívánt oldalkérelmek számát.
  • Példánkban egy 40-es határt adunk meg. Megadjuk a korlátot, mert egy nagyobb érték rontja az alkalmazás teljesítményét.

Futtassa a "demoalkalmazást" a Visual Studio alkalmazásban.

Kimenet:-

Ha most böngészi az URL-t - http: // localhost: 53003 / trace.axd , akkor az egyes kérésekhez tartozó információkat látja. Itt láthatja, hogy előfordulnak-e hibák az alkalmazásban. A következő típusú információk jelennek meg a fenti oldalon

  1. A weboldal igénylésének ideje.
  2. A kért weboldal neve.
  3. A webes kérelem állapotkódja. (a 200 állapotkód azt jelenti, hogy a kérés sikeres volt).
  4. A Részletek megtekintése lehetőség, amely lehetővé teszi az internetes kérelem további részleteinek megtekintését. Erre az alábbiakban egy példát mutatunk be. Az egyik fontos részletes információ a fejléc információ. Ez az információ megmutatja, hogy mi az információ, amelyet az egyes webes kérések fejlécében elküldtek.

Oldalszint-követés

Az oldalkövetés megmutatja az összes általános információt egy weblapról, amikor az feldolgozás alatt áll. Ez akkor hasznos a hibakeresésben, ha egy oldal bármilyen okból nem működik.

A Visual Studio részletes információkat nyújt az oldal különböző aspektusairól. Információk, például a webes kérelemben meghívott egyes módszerek ideje. Például, ha webes alkalmazásának problémája van a teljesítménnyel, ezek az információk segíthetnek a probléma hibakeresésében. Ezek az információk akkor jelennek meg, amikor az alkalmazás fut a Visual Studio alkalmazásban.

Nézzük meg, hogyan lehet engedélyezni egy alkalmazás nyomon követését oldalszinten.

1. lépés: Dolgozzunk a DemoApplication-on. Nyissa meg a demo.aspx fájlt a Megoldáskezelőben

2. lépés: Adja hozzá az alábbi kódsort az oldalkövetés engedélyezéséhez. Az Oldal deklarációban csak csatolja a Trace = "true" sort. Ez a kódsor lehetővé teszi az oldalszintű nyomon követést.

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

Most, amikor a Demo.aspx weboldal megjelenik, rengeteg információt kap az oldalról. Ezen az oldalon olyan információk jelennek meg, mint például az oldal életciklusának egyes aspektusai.

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

Az ASP.Net alkalmazásban egyéni hibaoldalakat jeleníthet meg a felhasználók számára. Ha egy alkalmazás bármilyen hibát tartalmaz, akkor egy egyedi oldal jeleníti meg 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 "A problémát vizsgáljuk". Ezután hozzáadunk egy kis hibakódot a demo.aspx oldalunkhoz, hogy a hibaoldal megjelenjen.

Kövessük az alább említett lépéseket

1. lépés: Dolgozzunk a DemoApplication-on. Adjunk hozzá egy HTML oldalt az alkalmazáshoz

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

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

  1. Adja meg a nevet „ErrorPage” néven.
  2. A folytatáshoz kattintson az 'OK' gombra.

3. lépés: A hibaoldal automatikusan megnyílik a Visual Studio alkalmazásban. Ha a Megoldáskezelőbe megy, akkor látni fogja a hozzáadott fájlt.

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

We are looking into the problem

4. lépés) Most módosítania kell a web.config fájlt. Ez a változás értesíti, hogy amikor hiba lép fel az alkalmazásban, meg kell jeleníteni az egyéni hiba oldalt.

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

5. lépés) Most adjunk hozzá egy hibás kódot a demo.aspx.cs oldalhoz. Nyissa meg ezt az oldalt, duplán kattintva a fájlra a Megoldáskezelőben

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

  • Ezeket a kódsorokat úgy tervezték, hogy olvassák el a szöveg sorait egy fájlból.
  • A fájl állítólag a D példányban található, az „Example.txt” névvel.
  • De a mi helyzetünkben ez a fájl valójában nem létezik. Tehát ez a kód hibát eredményez, 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 hajtsa végre a kódot a Visual Studio alkalmazásban, és meg kell kapnia az alábbi kimenetet.

Kimenet:-

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

ASP.NET kezeletlen kivétel

Még a legjobb esetekben is előfordulhatnak olyan hibák, amelyeket nem látnak előre.

Tegyük fel, hogy ha egy felhasználó rossz oldalra böngészi az alkalmazást. Ezt nem lehet megjósolni. Ilyen esetekben az ASP.Net átirányíthatja a felhasználót a errorpage.html fájlra.

Lássunk erre egy példát.

  • Ugyanezt a "DemoApplication" -t fogjuk használni, amely a Errorpage.html fájlt tartalmazza.
  • Megpróbálunk megtekinteni egy weboldalt, amely nem létezik az alkalmazásunkban.
  • Ebben az esetben át kell irányítanunk a ErrorPage.html oldalunkra. Nézzük meg az ennek eléréséhez szükséges lépéseket.

1. lépés: Dolgozzunk a DemoApplication-on. Nyissa meg a Global.asax.cs fájlt a Megoldáskezelőben

MEGJEGYZÉS : A global.asax.cs fájl olyan kód hozzáadására szolgál, amely az alkalmazás minden oldalán alkalmazható lesz.

2. lépés: Adja hozzá az alábbi kódsort a global.asax.cs fájlhoz. Ezekkel a sorokkal fogjuk ellenőrizni a hibákat, és ennek megfelelően megjeleníteni a ErrorPage.html oldalt.

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ázat: -

  1. Az első sor az Application_Error eseménykezelő. Ezt az eseményt akkor hívják meg, amikor hiba lép fel az alkalmazásban. Ne feledje, hogy az esemény nevének 'Application_Error' kell lennie. A paramétereknek pedig a fentiek szerint kell lenniük.
  2. Ezután meghatározzunk egy HttpException osztály típusú objektumot. Ez egy szabványos objektum, amely a hiba minden részletét tartalmazza. Ezután a Server.GetLastError metódust használjuk az alkalmazásban előforduló utolsó hiba összes részletének megszerzéséhez.
  3. Ezután ellenőrizzük, hogy az utolsó hiba hibakódja 404-e. (A 404-es hibakód a szokásos kód, amelyet akkor kapunk vissza, amikor a felhasználó egy olyan oldalra böngész, amely nem található). Ezután átkerül a felhasználó a ErrorPage.html oldalra, ha a hibakód megegyezik.

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

Kimenet:-

Tallózás 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 hibát váltottak ki az alkalmazásban. Ennek eredményeként a Error.html oldal jelenik meg a felhasználó számára.

ASP.NET Hiba a naplózás során

Az alkalmazáshibák naplózásával elősegíti a fejlesztő hibakeresését és a hiba későbbi feloldását. Az ASP.Net képes naplózni a hibákat. 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.

  • Ugyanezt a DemoApplication-ot fogjuk használni, amely a Errorpage.html fájlt tartalmazza.
  • Megpróbálunk megtekinteni egy weboldalt, amely nem létezik az alkalmazásunkban.
  • Ebben az esetben át kell irányítanunk a ErrorPage.html oldalunkra.
  • Ugyanakkor a hibaüzenetet egy naplófájlba írjuk. Nézzük meg az ennek eléréséhez szükséges lépéseket.

1. lépés: Dolgozzunk a DemoApplication-on. Nyissa meg a Global.asax.cs fájlt a Megoldáskezelőben

2. lépés: Adja hozzá az alábbi kódsort a global.asax.cs fájlhoz. Ellenőrizni fogja a hibákat, és ennek megfelelően megjeleníti a ErrorPage.html oldalt. Ugyanakkor naplózni fogjuk a hiba részleteit az „AllErrors.txt” nevű fájlban. Példánkhoz kódot írunk, hogy ezt a fájlt létrehozhassuk 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ázat: -

  1. Az első sor maga a hiba megszerzése a 'Server.GetLastError' módszer használatával. Ezt az „exc” változóhoz rendeljük.
  2. Ezután létrehozunk egy üres karakterlánc-változót, az 'str' nevet. A tényleges hibaüzenetet az 'exc.Message' tulajdonság segítségével kapjuk meg. Az exc.Message tulajdonságnak pontosan meg kell adnia az alkalmazás futtatásakor fellépő esetleges hibákat. Ezután hozzárendelik a string változóhoz.
  3. Ezután meghatározzuk az "AllErrrors.txt" nevű fájlt. Itt küldik el az összes hibaüzenetet. Írjuk az 'str' karakterláncot, amely tartalmazza az összes hibaüzenetet erre a fájlra.
  4. Végül átkerül a felhasználó a ErrorPage.html fájlba.

Kimenet:-

Tallózás 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üzenetet később egy későbbi időpontban tovább lehet továbbítani a fejlesztőnek hibakeresés céljából.

Összegzés

  • Az ASP.Net képes hibakeresésre és hibakezelésre.
  • A hibakeresés töréspontok hozzáadásával érhető el. Ezután az egyik futtatja a Visual Studio Start debugging opcióját a kód hibakereséséhez.
  • A nyomkövetés arra szolgál, hogy több információt nyújtson az alkalmazás futtatása közben. Ez megtehető az alkalmazás vagy az oldal szintjén.
  • Az oldal szintjén hozzá kell adni a Trace = true kódot az oldal irányelvhez.
  • Az alkalmazás szintjén egy további Trace.axd nevű 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.