Úroveň stránky Asp.Net Tracování, ladění, ošetření chyb [Příklad]
V jakékoli aplikaci se během procesu vývoje zákonitě vyskytnou chyby. Je důležité umět odhalit chyby v rané fázi.
V aplikaci Visual Studio je to možné provést pro aplikace ASP.Net. Visual Studio se používá pro ladění a má techniky zpracování chyb pro ASP.Net.
Co je ladění v ASP.NET?
Ladění je proces přidávání bodů přerušení do aplikace. Tyto body přerušení se používají k pozastavení provádění spuštěného programu. To umožňuje vývojáři porozumět tomu, co se děje v programu v určitém okamžiku.
Vezměme si příklad programu. Program uživateli zobrazí řetězec „Ladíme“. Předpokládejme, že když spustíme aplikaci, z nějakého důvodu se řetězec nezobrazí. Abychom identifikovali problém, musíme přidat bod přerušení. Můžeme přidat bod přerušení do řádku kódu, který zobrazí řetězec. Tento bod přerušení pozastaví provádění programu. V tomto okamžiku může programátor vidět, co je možná špatně. Programátor odpovídajícím způsobem upraví program.
Zde v příkladu použijeme naši 'DemoApplication', která byla vytvořena v předchozích kapitolách. V následujícím příkladu uvidíme
- Jak přimět demo aplikaci zobrazovat řetězec.
- Jak přidat body přerušení do aplikace.
- Jak ladit aplikaci pomocí tohoto bodu přerušení.
Jak ladit aplikaci v ASP.NET
Níže jsou uvedeny kroky k vytvoření demo aplikace, přidání bodů přerušení a ladění v ASP.Net:
Krok 1) Otevřete aplikaci ve Visual Studiu
Nejprve se ujistěte, že máme naši webovou aplikaci otevřenou ve Visual Studiu. Ujistěte se, že je DemoApplication otevřená ve Visual Studiu.
Krok 2) Nyní otevřete soubor Demo.aspx.cs a přidejte níže uvedený řádek kódu.
- Právě přidáváme řádek kódu Response.Write pro zobrazení řetězce.
- Když se tedy aplikace spustí, měla by ve webovém prohlížeči zobrazit řetězec „Ladíme“.
namespace DemoApplication
{
public partial class Demo : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Response.Write("We are debugging");
}
}
}
Krok 3) Přidejte do aplikace bod přerušení
Bod přerušení je bod v sadě Visual Studio, kde chcete zastavit provádění programu.
- Chcete-li přidat zarážku, musíte kliknout na sloupec, kam chcete zarážku vložit. V našem případě tedy chceme, aby se náš program zastavil na řádku kódu „Response.Write“. Chcete-li přidat bod přerušení, nemusíte přidávat žádný příkaz. Stačí kliknout na řádek, na který chcete přidat bod přerušení.
- Jakmile to uděláte, všimnete si, že kód je označen červeně. Ve sloupci vedle řádku kódu se také objeví červená bublina.
Poznámka: - V aplikaci můžete přidat více bodů přerušení
Krok 4) Spusťte aplikaci v režimu ladění
Nyní musíte spustit aplikaci pomocí režimu ladění. V sadě Visual Studio vyberte možnost nabídky Debug->Start Debugging.
Výstup:-
Když provedete všechny kroky správně, provádění programu se přeruší. Visual Studio přejde na bod přerušení a označí řádek kódu žlutě.
Nyní, pokud má programátor pocit, že kód je nesprávný, může být provádění zastaveno. Kód lze poté odpovídajícím způsobem upravit. Aby mohl programátor pokračovat v programu, musí kliknout na tlačítko F5 na klávesnici.
Co je to Tracv ASP.NET?
editaci videa tracing umožňuje zjistit, zda některé požadované stránky vedou k chybě. Kdy tracje povoleno, zobrazí se další stránka s názvem tracSoubor e.axd je přidán do aplikace. (Viz obrázek níže). Tato stránka je připojena k aplikaci. Na této stránce se zobrazí všechny požadavky a jejich stav.
Jak povolit tracpro aplikaci v ASP.NET
Podívejme se, jak to povolit tracing pro Aplikace ASP.Net:
Krok 1) Pojďme pracovat na naší 'DemoAplikaci'. Otevřete soubor web.config z Průzkumníka řešení.
Krok 2) Přidejte níže uvedený řádek kódu do souboru Web.config.
Jedno tracPříkaz e se používá k povolení tracpro aplikaci.
- „RequestLimit“ v tracPoužívá se příkaz e. Určuje počet požadavků na stránku, které musí být traced.
- V našem příkladu dáváme limit 40. Udáváme limit, protože vyšší hodnota sníží výkon aplikace.
<?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>
Spusťte „demoaplikaci“ ve Visual Studiu.
Výstup:-
Pokud nyní přejdete na adresu URL – http://localhost:53003/trace.axd , uvidíte informace pro každý požadavek. Zde můžete vidět, zda se v aplikaci vyskytly nějaké chyby. Na výše uvedené stránce jsou zobrazeny následující typy informací
- Čas požadavku na webovou stránku.
- Název požadované webové stránky.
- Stavový kód webového požadavku. (stavový kód 200 znamená, že požadavek je úspěšný).
- Zobrazení podrobností, které umožňujete zobrazit další podrobnosti o webovém požadavku. Příklad je uveden níže. Jednou z důležitých podrobných informací jsou informace v záhlaví. Tyto informace ukazují, jaké jsou informace zasílané v záhlaví každého webového požadavku.
Úroveň stránky Tracv ASP.NET
Úroveň stránky Tracing. v ASP.Net zobrazuje všechny obecné informace o webové stránce, když je zpracovávána. To je užitečné při ladění, pokud stránka z nějakého důvodu nefunguje. Visual Studio poskytuje podrobné informace o různých aspektech stránky a informace, jako je čas pro každou metodu, která je volána ve webovém požadavku.
Pokud má například vaše webová aplikace problém s výkonem, tyto informace vám mohou pomoci při ladění problému. Tyto informace se zobrazí, když je aplikace spuštěna v sadě Visual Studio.
Jak povolit tracna úrovni stránky v ASP.NET
Podívejme se, jak povolit úroveň stránky tracpro aplikaci ASP.Net:
Krok 1) Pojďme pracovat na naší DemoApplication. Otevřete soubor demo.aspx z Průzkumníka řešení
Krok 2) Přidejte níže uvedený řádek kódu pro povolení stránky tracing. V deklaraci stránky stačí přidat řádek Trace=”true”. Tento řádek kódu povolí tracIng.
<%@ 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>
Spusťte aplikaci v sadě Visual Studio.
Výstup:-
Nyní, když se zobrazí webová stránka Demo.aspx, získáte o stránce spoustu informací. Na této stránce se zobrazují informace, jako je čas pro každý aspekt životního cyklu stránky.
Zpracování chyb: Zobrazení vlastní chybové stránky
In ASP.Net, můžete uživatelům zobrazit vlastní chybové stránky. Pokud aplikace obsahuje jakýkoli druh chyby, uživatelská stránka tuto chybu zobrazí uživateli.
V našem příkladu nejprve přidáme stránku HTML. Na této stránce se uživateli zobrazí řetězec „Prověřujeme problém“. Poté přidáme nějaký chybový kód na naši stránku demo.aspx, aby se zobrazila chybová stránka.
Pokračujme níže uvedenými kroky
Krok 1) Pojďme pracovat na naší DemoApplication. Přidejme do aplikace HTML stránku
- Klepněte pravým tlačítkem myši na DemoApplication v Průzkumníku řešení
- Vyberte v nabídce možnost 'Přidat'->Stránka HTML
Krok 2) V dalším kroku musíme zadat název nové HTML stránky.
- Zadejte název jako „ErrorPage“.
- Pokračujte kliknutím na tlačítko 'OK'.
Krok 3) Stránka Errorpage se automaticky otevře v aplikaci Visual Studio. Pokud přejdete do Průzkumníka řešení, uvidíte přidaný soubor.
Přidejte na stránku HTML řádek kódu „Zkoumáme problém“. Před provedením změny v souboru web.config nemusíte zavírat soubor HTML.
<!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>
Krok 4) Nyní je potřeba provést změnu v souboru web.config. Tato změna upozorní, že kdykoli dojde v aplikaci k chybě, je třeba zobrazit vlastní chybovou stránku.
Značka 'customErrors' umožňuje definovat vlastní chybovou stránku. Vlastnost defaultRedirect je nastavena na název naší vlastní chybové stránky vytvořené v předchozím kroku.
<configuration> <system.web> <compilation debug="true" targetFramework="4.0" /> <httpRuntime targetFramework="4.0” /> <customErrors mode="On" defaultRedirect="ErrorPage.html"> </customErrors> </system.web> </configuration>
Krok 5) Nyní přidáme nějaký chybný kód na stránku demo.aspx.cs. Otevřete tuto stránku dvojitým kliknutím na soubor v Průzkumníku řešení
Přidejte níže uvedený kód do souboru Demo.aspx.cs.
- Tyto řádky kódu jsou navrženy pro čtení řádků textu ze souboru.
- Soubor by měl být umístěn na jednotce D s názvem 'Example.txt.'
- Ale v naší situaci tento soubor ve skutečnosti neexistuje. Tento kód tedy povede k chybě při spuštění aplikace.
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);
}
}
}
Nyní spusťte kód v Visual Studio a měli byste získat níže uvedený výstup.
Výstup:-
Výše uvedená stránka ukazuje, že v aplikaci byla spuštěna chyba. V důsledku toho se uživateli zobrazí stránka Error.html.
Neošetřená výjimka ASP.NET
I v těch nejlepších scénářích mohou nastat případy chyb, které prostě nelze předvídat.
Předpokládejme, že uživatel přejde na nesprávnou stránku v aplikaci. To je něco, co nelze předvídat. V takových případech může ASP.Net přesměrovat uživatele na errorpage.html.
Podívejme se na příklad.
- Budeme používat naši stejnou 'DemoApplication', která má Errorpage.html.
- A my se pokusíme zobrazit webovou stránku, která v naší aplikaci neexistuje.
- V tomto případě bychom měli být přesměrováni na naši stránku ErrorPage.html. Podívejme se na kroky, jak toho dosáhnout.
Krok 1) Pojďme pracovat na naší DemoApplication. Otevřete soubor Global.asax.cs z Průzkumníka řešení
POZNÁMKA: Soubor global.asax.cs se používá k přidání kódu, který bude použitelný na všech stránkách v aplikaci.
Krok 2) Přidejte níže uvedený řádek kódu do souboru global.asax.cs. Tyto řádky budou použity ke kontrole chyb a odpovídajícímu zobrazení stránky ErrorPage.html.
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");
}
}
}
Code Vysvětlení:-
- První řádek je obslužná rutina události Application_Error. Tato událost je volána vždy, když v aplikaci dojde k chybě. Všimněte si, že název události musí být 'Application_Error'. A parametry by měly být takové, jak je uvedeno výše.
- Dále definujeme objekt třídy typu HttpException. Toto je standardní objekt, který bude obsahovat všechny podrobnosti o chybě. Poté použijeme metodu Server.GetLastError k získání všech podrobností o poslední chybě, která se v aplikaci vyskytla.
- Poté zkontrolujeme, zda je chybový kód poslední chyby 404. (Kód chyby 404 je standardní kód vrácený, když uživatel projde na stránku, která nebyla nalezena). Pokud se kód chyby shoduje, převedeme uživatele na stránku ErrorPage.html.
Nyní spusťte kód ve Visual Studiu a měli byste získat níže uvedený výstup
Výstup:-
Procházejte stránku http://localhost:53003/Demo1.aspx . Pamatujte, že Demo1.aspx v naší aplikaci neexistuje. Poté získáte níže uvedený výstup.
Výše uvedená stránka ukazuje, že v aplikaci byla spuštěna chyba. V důsledku toho se uživateli zobrazí stránka Error.html.
Protokolování chyb ASP.NET
Zaznamenáním chyb aplikace pomáhá vývojářům ladit a řešit chybu v pozdějším okamžiku. ASP.Net má možnost protokolovat chyby. To se provádí v souboru Global.asax.cs při zachycení chyby. Během procesu zachycování lze chybovou zprávu zapsat do souboru protokolu.
Podívejme se na příklad.
- Budeme používat naši stejnou DemoApplication, která má Errorpage.html.
- A my se pokusíme zobrazit webovou stránku, která v naší aplikaci neexistuje.
- V tomto případě bychom měli být přesměrováni na naši stránku ErrorPage.html.
- A zároveň chybovou hlášku zapíšeme do log souboru. Podívejme se na kroky, jak toho dosáhnout.
Krok 1) Pojďme pracovat na naší DemoApplication. Otevřete soubor Global.asax.cs z Průzkumníka řešení
Krok 2) Přidejte níže uvedený řádek kódu do souboru global.asax.cs. Zkontroluje chyby a podle toho zobrazí stránku ErrorPage.html. Zároveň také zaznamenáme podrobnosti o chybě do souboru s názvem 'AllErrors.txt.' V našem příkladu napíšeme kód, aby byl tento soubor vytvořen na jednotce D.
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");
}
}
}
Code Vysvětlení:-
- První řádek je získat samotnou chybu pomocí metody 'Server.GetLastError'. Ten je pak přiřazen k proměnné 'exc'.
- Poté vytvoříme prázdnou řetězcovou proměnnou s názvem 'str'. Skutečnou chybovou zprávu získáme pomocí vlastnosti 'exc.Message'. Vlastnost exc.Message bude obsahovat přesnou zprávu pro jakoukoli chybu, ke které dojde při spuštění aplikace. To se pak přiřadí řetězcové proměnné.
- Dále definujeme soubor s názvem 'AllErrrors.txt.' Zde se budou odesílat všechna chybová hlášení. Do tohoto souboru zapíšeme řetězec 'str', který obsahuje všechny chybové zprávy.
- Nakonec uživatele přeneseme do souboru ErrorPage.html.
Výstup:-
Procházejte stránku http://localhost:53003/Demo1.aspx . Pamatujte, že Demo1.aspx v naší aplikaci neexistuje. Poté získáte níže uvedený výstup.
A zároveň, pokud otevřete soubor 'AllErrors.txt', uvidíte níže uvedené informace.
Chybová zpráva pak může být předána vývojáři později pro účely ladění.
Shrnutí
- ASP.Net má zařízení k provádění ladění a zpracování chyb.
- Ladění lze dosáhnout přidáním bodů přerušení do kódu. Poté spustíte možnost Začít s laděním v sadě Visual Studio, aby se ladil kód.
- Tracing je funkce pro poskytování dalších informací během běhu aplikace. To lze provést na úrovni aplikace nebo stránky.
- Na úrovni stránky kód TracDo direktivy page je třeba přidat e=true.
- Na úrovni aplikace je k dispozici další stránka s názvem TracPro aplikaci je vytvořen soubor e.axd. Ten poskytuje všechny potřebné traczískávání informací.




























