Asp.Net oldalszintű Tracás, Hibakeresés, Hibakezelés

⚡ Okos összefoglaló

ASP.NET hibakeresés, tracA Visual Studio hibakezelése segít a fejlesztőknek korán felismerni a problémákat, nyomon követni a kéréseket. trace.axd, és átirányítja a felhasználókat egyéni hibaoldalakra, amikor kezeletlen kivételek történnek a fejlesztési és éles életciklus során.

  • 🐞 Hibakeresés: A Visual Studio töréspontjai szüneteltetik a végrehajtást, így egy futó ASP.NET oldalt soronként ellenőrizhet.
  • ???? TracING: engedélyezése tracA web.config fájlban található e hozzáadja trace.axd, amely felsorolja az összes kérést, azok állapotkódját és időzítését.
  • 📄 oldal TracING: Hozzáadása TracAz „e=”true” beállítás a Page direktívában egyetlen oldal életciklus-időtartamát mutatja.
  • 🚧 Egyéni hibák: A customErrors címke egy felhasználóbarát hibaüzenetet tartalmazó oldalra irányítja át a felhasználókat, amikor az alkalmazás hibát jelez.
  • 🧭 Kezeletlen kivételek: A Global.asax fájlban található Application_Error hiba váratlan hibákat észlel, és átirányít egy biztonságos oldalra.
  • 🗃️ Hibanaplózás: A Server.GetLastError részleteinek fájlba írása rögzíti a problémákat a későbbi hibakereséshez.

ASP.NET oldalszintű Tracás, hibakeresés és hibakezelés

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 ASP.NET alkalmazásokhoz lehetséges. A Visual Studio hibakeresésre szolgál, és rendelkezik ASP.NET hibakezelési technikákkal.

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

Hibakeresés az a folyamat, amelynek során töréspontokat adunk egy alkalmazáshoz. Ezeket a töréspontokat egy futó program végrehajtásának szüneteltetésére használjuk. Ez lehetővé teszi a fejlesztő számára, hogy megértse, mi történik a programban egy adott időpontban.

Vegyünk egy példát egy programra. A program egy „Hibakeresés folyamatban” szöveget jelenít meg a felhasználónak. Tegyük fel, hogy az alkalmazás futtatásakor valamilyen oknál fogva a szöveg nem jelenik meg. A probléma azonosításához hozzá kell adnunk egy töréspontot. Hozzáadhatunk egy töréspontot a kódsorhoz, amely megjeleníti a szöveget. 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 kijavítja a programot.

Ebben a példában a korábbi fejezetekben létrehozott DemoApplication-unkat fogjuk használni. A következő példában a következőket fogjuk látni:

  • 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 ASP.NET-ben

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

1. lépés) Nyissa meg az alkalmazást a Visual Studio-ban.
Először is győződjünk meg arról, hogy a webes alkalmazásunk meg van nyitva a Visual Studioban. Győződjünk meg arról, hogy a DemoApplication meg van nyitva a Visual Studioban.

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é szúrni. Tehát a mi esetünkben azt szeretnénk, hogy a programunk a „Response.Write” kódnál álljon meg. Nem kell semmilyen parancsot hozzáadnia a töréspont hozzáadásához. Csak kattintson arra a sorra, amelyhez a töréspontot hozzá szeretné 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: Több töréspontot is hozzáadhat egy alkalmazáshoz.

4. lépés) Futtassa az alkalmazást hibakeresési 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 a TracASP.NET-ben dolgozol?

Alkalmazás tracING lehetővé teszi annak megtekintését, hogy a kért oldalak hibát okoznak-e. Amikor tracengedélyezve van, egy külön oldal, az úgynevezett tracAz e.axd fájl hozzáadódik az alkalmazáshoz (lásd az alábbi képet). Ez az oldal csatolva van az alkalmazáshoz, és megjeleníti az összes kérést és azok állapotát.

TracASP.NET-ben

Hogyan lehet engedélyezni TracAlkalmazáshoz ASP.NET-ben

Nézzük meg, hogyan lehet engedélyezni tracegyért ASP.NET alkalmazás:

Step 1) Dolgozzunk a demóalkalmazásunkon. Nyissuk meg a web.config fájlt a Megoldáskezelőből.

engedélyezése tracalkalmazáshoz ASP.NET-ben

Step 2) Adja hozzá az alábbi kódsort a web.config fájlhoz. A tracAz e utasítást használják az engedélyezésre traca jelentkezéshez.

  • A requestLimit a tracAz „e” utasítás meghatározza a végrehajtandó oldalkérelmek számát. traced.
  • A példánkban 40-es korlátot adunk meg. Azért adunk meg egy korlátot, mert a magasabb érték rontja az alkalmazás teljesítményét.

engedélyezése tracalkalmazáshoz 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 enabled="true" pageOutput="false" requestLimit="40" localOnly="false" />

    </system.web>
</configuration>

Futtassa a DemoApplication alkalmazást a Visual Studióban.

Kimenet:-

engedélyezése tracalkalmazáshoz ASP.NET-ben

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

  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 hivatkozásra kattintva további részleteket tekinthet meg a webes kérésről. Az egyik fontos részlet a fejlécinformáció, amely megmutatja, hogy milyen információk kerülnek elküldésre az egyes webes kérések fejlécében.

engedélyezése tracalkalmazáshoz ASP.NET-ben

Oldalszint TracASP.NET-ben

Oldalszint TracING Az ASP.NET-ben az oldal feldolgozása közben az összes általános információt megjeleníti. Ez 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, például a webes kérésben meghívott egyes metódusok idejéről.

Például, ha a webalkalmazásod teljesítményproblémákkal küzd, ez az információ segíthet a probléma elhárításában. Ez az információ akkor jelenik meg, amikor az alkalmazás a Visual Studio-ban fut.

Hogyan lehet engedélyezni TracOldalszintű elemzés ASP.NET-ben

Nézzük meg, hogyan lehet engedélyezni az oldalszintű megjelenítést tracASP.NET alkalmazáshoz:

Step 1) Dolgozzunk a DemoApplication-on. Nyissuk meg a demo.aspx fájlt a Megoldáskezelőből.

Oldalszint TracASP.NET-ben

Step 2) Adja hozzá az alábbi kódsort az oldal engedélyezéséhez tracing. Az Page deklarációban egyszerűen fűzd hozzá az attribútumot Trace=”true”. Ez a kódsor lehetővé teszi az oldal szintű műveleteket. tracIng.

Oldalszint TracASP.NET-ben

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

<!DOCTYPE html>
<html xmlns="http://www.w3.org/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 TracASP.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.

A példánkban először egy HTML oldalt fogunk hozzáadni. Ez az oldal egy karakterláncot jelenít meg a felhasználónak: „Vizsgáljuk a problémát”. Ezután hibakódot adunk a demo.aspx oldalunkhoz, hogy a hibaoldal megjelenjen. Kövessük az alábbi lépéseket.

Step 1) Dolgozzunk a demóalkalmazásunkon. Adjunk hozzá egy HTML oldalt az alkalmazáshoz.

  1. Kattintson a jobb gombbal a DemoApplication elemre a Megoldáskezelőben.
  2. Válaszd a Hozzáadás->HTML oldal menüpontot.

Hibakezelés ASP.NET-ben

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

  1. Adja meg a nevet ErrorPage formátumban.
  2. A folytatáshoz kattintson az OK gombra.

Hibakezelés ASP.NET-ben

Step 3) Az ErrorPage automatikusan megnyílik a Visual Studioban. Ha megnyitod a Solution Explorert, látni fogod a hozzáadott fájlt.

Hibakezelés ASP.NET-ben

Add hozzá a „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árnod a HTML fájlt.

Hibakezelés ASP.NET-ben

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    We are looking into the problem
</body>
</html>

Step 4) Most módosítanod kell a web.config fájlt. Ez a módosítás értesíteni fogja, hogy valahányszor hiba történik az alkalmazásban, egyéni hibaoldalt kell megjeleníteni. A customErrors címke lehetővé teszi egyéni hibaoldal definiálását. A defaultRedirect tulajdonság az előző lépésben létrehozott egyéni hibaoldal nevére van beállítva.

Hibakezelés ASP.NET-ben

<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á hibás kódot a demo.aspx.cs oldalhoz. Nyissuk meg ezt az oldalt a fájlra duplán kattintva a Megoldáskezelőben.

Hibakezelés ASP.NET-ben

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

  • Ezek a kódsorok arra szolgálnak, hogy egy fájlból olvassák be a szövegsorokat.
  • A fájlnak a D meghajtón kell lennie, Example.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 ASP.NET-ben

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 ASP.NET-ben

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

ASP.NET kezeletlen kivétel

Még a legjobb esetben is előfordulhatnak előre nem látható hibák. Tegyük fel, hogy egy felhasználó rossz oldalra navigál az alkalmazásban. Ez egy olyan dolog, amit nem lehet megjósolni. Ilyen esetekben az ASP.NET átirányíthatja a felhasználót az ErrorPage.html fájlra.

Lássunk erre egy példát.

  • Ugyanazt a DemoApplication-t fogjuk használni, amelyiknek van ErrorPage.html fájlja.
  • És megpróbálunk olyan weboldalt megtekinteni, amely nem létezik az alkalmazásunkban.
  • Ebben az esetben az ErrorPage.html oldalunkra kell átirányítanunk minket. Nézzük meg a lépéseket, hogy ezt elérhessük.

Step 1) Dolgozzunk a DemoApplication-on. Nyissuk meg a Global.asax.cs fájlt a Megoldáskezelőből.

ASP.NET kezeletlen kivétel

Jegyzet: A Global.asax.cs fájllal olyan kódot lehet hozzáadni, amely az alkalmazás összes oldalán érvényes lesz.

Step 2) Add 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 ennek megfelelő megjelenítésére szolgálnak.

ASP.NET kezeletlen kivétel

namespace DemoApplication
{
    public class Global : System.Web.HttpApplication
    {
        protected void Application_Error(object sender, EventArgs e)
        {
            HttpException lastErrorWrapper = Server.GetLastError() as HttpException;

            if (lastErrorWrapper.GetHttpCode() == 404)
                Server.Transfer("~/ErrorPage.html");
        }
    }
}

Code Magyarázat:-

  1. Az első sor az Application_Error eseménykezelő. Ez az esemény minden alkalommal meghívódik, amikor hiba történik egy alkalmazásban. Fontos megjegyezni, hogy az esemény nevének Application_Error-nak kell lennie, a paramétereknek pedig a fentieknek megfelelően 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ó hibakód 404-es-e (a 404-es hibakód az a standard kód, amely akkor tér vissza, amikor a felhasználó egy olyan oldalra böngészik, amely nem található). Ha a hibakód egyezik, átirányítjuk a felhasználót az ErrorPage.html oldalra.

Most futtasd a kódot a Visual Studio-ban, és az alábbi kimenetet kell kapnod.

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 ErrorPage.html oldal jelenik meg a felhasználónak.

ASP.NET hibanaplózás

Az alkalmazáshibák naplózásával segíti a fejlesztőt a hiba későbbi elhárításában és megoldásában. Az ASP.NET képes hibák naplózására. Ez a Global.asax.cs fájlban történik, amikor a hiba rögzítésre kerül. A rögzítési folyamat során a hibaüzenet egy naplófájlba írható.

Lássunk erre egy példát.

  • Ugyanazt a DemoApplication-t fogjuk használni, amelyiknek van ErrorPage.html fájlja.
  • É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.
  • És ezzel egy időben a hibaüzenetet egy naplófájlba fogjuk írni. Nézzük meg a lépéseket, hogy ezt elérhessük.

Step 1) Dolgozzunk a DemoApplication-on. Nyissuk meg a Global.asax.cs fájlt a Megoldáskezelőből.

ASP.NET Hibanaplózás

Step 2) Add hozzá az alábbi kódsort a Global.asax.cs fájlhoz. Ez hibákat fog keresni, és ennek megfelelően megjeleníti az ErrorPage.html oldalt. Ezzel egyidejűleg a hiba részleteit is naplózzuk egy AllErrors.txt nevű fájlban. Példánkban egy kódot fogunk írni, amely ezt a fájlt a D meghajtón hozza létre.

ASP.NET Hibanaplózás

namespace DemoApplication
{
    public class Global : System.Web.HttpApplication
    {
        protected void Application_Error(object sender, EventArgs e)
        {
            Exception exc = Server.GetLastError();
            String str = "";
            str = exc.Message;

            String path = @"D:\AllErrors.txt";
            File.WriteAllText(path, str);
            Server.Transfer("~/ErrorPage.html");
        }
    }
}

Code Magyarázat:-

  1. Az első sorban magát a hibát kell lekérdezni a Server.GetLastError metódus segítségével. Ezt ezután az exc változóhoz rendeljük.
  2. Ezután létrehozunk egy üres karakterlánc változót, az úgynevezett str-t. A tényleges hibaüzenetet az exc.Message tulajdonság segítségével kapjuk meg. Az exc.Message tulajdonság tartalmazza a pontos üzenetet az alkalmazás futtatása során felmerülő hibákról. Ezt ezután a karakterlánc változóhoz rendeljük.
  3. Ezután definiáljuk az AllErrors.txt nevű fájlt. Ide fogjuk küldeni az összes hibaüzenetet. Ebbe a fájlba írjuk az „str” karakterláncot, amely az összes hibaüzenetet tartalmazza.
  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

É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.

GYIK

Igen. Az olyan mesterséges intelligencia eszközök, mint a GitHub Copilot, javasolhatnak töréspontokat, elmagyarázhatnak egy kivételt, és javításokat javasolhatnak az ASP.NET kódhoz. RevTekintse meg az egyes javaslatokat, és reprodukálja a hibát saját maga, mivel a mesterséges intelligencia félreolvashatja az alkalmazásspecifikus állapotot.

Igen. A gépi tanulás olyan eszközökben működik, mint például Azure Az Application Insights automatikusan képes megjelölni a kivételek számának szokatlan növekedését vagy a lassú kérelmeket. Ez segít a csapatoknak gyorsabban megtalálni az éles környezetben felmerülő problémákat, mint a nyers naplófájlok manuális beolvasásával.

Nem. A customErrors mód kikapcsolt állapota esetén a verem elérhetővé válik. tracés bizalmas adatokat minden látogatónak, ami biztonsági kockázatot jelent. Használja a RemoteOnly vagy a Be módot éles környezetben, hogy csak a helyi fejlesztők láthassák a teljes hiba részleteit.

A RemoteOnly csak a helyi szerveren lévő böngészőknek jeleníti meg a részletes hibaoldalakat, míg a távoli felhasználók az alapértelmezett átirányítás oldalra kerülnek. Ez egy biztonságos köztes megoldás egy élő webhely hibakereséséhez az információk kiszivárgása nélkül.

Állítsd be a debug=”false” értéket a web.config fordítási elemében. A hibakeresési mód letiltja az optimalizálásokat, hosszú időtúllépéseket tart fenn, és növeli a memóriahasználatot, ezért az éles webhelyeken mindig kikapcsolt állapotban kell lennie. Visual Studio.

Nem. Nyitott tracAz e.axd képes fejléceket, munkamenet- és szerverváltozókat felfedni a támadók számára. Állítsa be a localOnly=”true” értéket, vagy tiltsa le. tracteljesen a telepítés előtt tracAz elektronikus adatok soha nem kerülnek ki a távoli felhasználók számára.

A Server.Transfer a böngésző megváltoztatása nélkül továbbítja a kérést a szerveren található hibaoldalra. URL vagy oda-vissza útra indul. A Response.Redirect új kérést küld a böngészőnek, frissítve a URL a hibaoldalra.

Kivételüzenet rögzítése, veremelés trace, kért URL, időbélyeg és felhasználói kontextus. Ezek az adatok lehetővé teszik a fejlesztők számára, hogy később reprodukálják a hibát. Az Application_Error Server.GetLastError függvénye elérhetővé teszi a kivételt, így azt fájlba vagy adatbázisba írhatja.

Foglald össze ezt a bejegyzést a következőképpen: