Śledzenie poziomu strony Asp.Net, debugowanie, obsługa błędów [Przykład]

W każdej aplikacji w procesie rozwoju muszą wystąpić błędy. Ważne jest, aby móc wykryć błędy na wczesnym etapie.

W Visual Studio jest to możliwe dla aplikacji ASP.Net. Visual Studio jest używane do debugowania i ma techniki obsługi błędów dla ASP.Net.

Co to jest debugowanie w ASP.NET?

Debugowanie to proces dodawania punktów przerwania do aplikacji. Te punkty przerwania służą do wstrzymywania wykonywania uruchomionego programu. Pozwala to programiście zrozumieć, co dzieje się w programie w określonym momencie.

Weźmy przykład programu. Program wyświetla użytkownikowi ciąg „Debugujemy”. Załóżmy, że po uruchomieniu aplikacji z jakiegoś powodu ciąg nie jest wyświetlany. Aby zidentyfikować problem, musimy dodać punkt przerwania. Możemy dodać punkt przerwania do wiersza kodu, który wyświetla ciąg. Ten punkt przerwania wstrzyma wykonywanie programu. W tym momencie programista może zobaczyć, co prawdopodobnie jest nie tak. Programista odpowiednio naprawia program.

Tutaj w przykładzie użyjemy naszego 'DemoApplication', który został utworzony w poprzednich rozdziałach. W poniższym przykładzie zobaczymy

  • Jak sprawić, by aplikacja demonstracyjna wyświetlała ciąg znaków.
  • Jak dodać punkty przerwania do aplikacji.
  • Jak debugować aplikację przy użyciu tego punktu przerwania.

Jak debugować aplikację w ASP.NET

Poniżej znajdują się kroki umożliwiające utworzenie aplikacji demonstracyjnej, dodanie punktów przerwania i debugowanie w ASP.Net:

Krok 1) Otwórz aplikację w programie Visual Studio
Najpierw upewnijmy się, że nasza aplikacja internetowa jest otwarta w Visual Studio. Upewnij się, że DemoApplication jest otwarta w Visual Studio.

Debuguj aplikację w ASP.NET

Krok 2) Teraz otwórz plik Demo.aspx.cs i dodaj poniższą linię kodu.

  • Właśnie dodajemy linię kodu Response.Write, aby wyświetlić ciąg znaków.
  • Zatem po uruchomieniu aplikacja powinna wyświetlić w przeglądarce internetowej ciąg „Debugujemy”.

Debuguj aplikację w ASP.NET

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) Dodaj punkt przerwania do aplikacji
Punkt przerwania to punkt w programie Visual Studio, w którym chcesz zatrzymać wykonywanie programu.

Debuguj aplikację w ASP.NET

  1. Aby dodać punkt przerwania, kliknij kolumnę, w której chcesz wstawić punkt przerwania. Zatem w naszym przypadku chcemy, aby nasz program zatrzymał się na linii kodu „Response.Write”. Aby dodać punkt przerwania, nie musisz dodawać żadnego polecenia. Wystarczy kliknąć linię, na której chcesz dodać punkt przerwania.
  2. Gdy to zrobisz, zauważysz, że kod zostanie zaznaczony na czerwono. Ponadto w kolumnie obok linii kodu pojawia się czerwona bańka.

Uwaga: - W aplikacji można dodać wiele punktów przerwania

Krok 4) Uruchom aplikację w trybie debugowania
Teraz musisz uruchomić aplikację w trybie debugowania. W Visual Studio wybierz opcję menu Debug->Start Debugging.

Debuguj aplikację w ASP.NET

Wynik:-

Debuguj aplikację w ASP.NET

Gdy wykonasz wszystkie kroki poprawnie, wykonywanie programu zostanie przerwane. Visual Studio przejdzie do punktu przerwania i oznaczy wiersz kodu na żółto.

Teraz, jeśli programista uzna, że ​​kod jest nieprawidłowy, wykonanie można zatrzymać. Kod można następnie odpowiednio zmodyfikować. Aby kontynuować pracę programu, programista musi kliknąć przycisk F5 na klawiaturze.

Co to jest śledzenie w ASP.NET?

Śledzenie aplikacji pozwala sprawdzić, czy żądane strony powodują błąd. Gdy śledzenie jest włączone, do aplikacji dodawana jest dodatkowa strona o nazwie trace.axd. (Patrz obrazek poniżej). Ta strona jest dołączona do wniosku. Na tej stronie zostaną wyświetlone wszystkie żądania i ich status.

Śledzenie w ASP.NET

Jak włączyć śledzenie aplikacji w ASP.NET

Przyjrzyjmy się, jak włączyć śledzenie dla pliku Aplikacja ASP.Net:

Krok 1) Popracujmy nad naszą „Aplikacją Demo”. Otwórz plik web.config w Eksploratorze rozwiązań.

Włącz śledzenie aplikacji w ASP.NET

Krok 2) Dodaj poniższy wiersz kodu do pliku Web.config.

Instrukcja śledzenia służy do włączania śledzenia aplikacji.

  • Używana jest instrukcja „requestLimit” w instrukcji śledzenia. Określa liczbę żądań stron, które należy prześledzić.
  • W naszym przykładzie podajemy limit 40. Podajemy limit, ponieważ wyższa wartość obniży wydajność aplikacji.

Włącz śledzenie aplikacji w ASP.NET

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

Uruchom „demoapplication” w programie Visual Studio.

Wynik:-

Włącz śledzenie aplikacji w ASP.NET

Jeśli teraz przejdziesz do adresu URL – http://localhost:53003/trace.axd , zobaczysz informacje dla każdego żądania. Tutaj możesz zobaczyć, czy w aplikacji wystąpiły jakieś błędy. Na powyższej stronie wyświetlane są następujące typy informacji

  1. Czas żądania strony internetowej.
  2. Nazwa żądanej strony internetowej.
  3. Kod stanu żądania internetowego. (kod stanu 200 oznacza, że ​​żądanie zakończyło się sukcesem).
  4. Szczegóły widoku, które zezwalają na wyświetlanie większej ilości szczegółów dotyczących żądania internetowego. Przykład tego pokazano poniżej. Jedną z ważnych szczegółowych informacji jest informacja nagłówka. Ta informacja pokazuje, jakie informacje są wysyłane w nagłówku każdego żądania internetowego.

Włącz śledzenie aplikacji w ASP.NET

Śledzenie na poziomie strony w ASP.NET

Śledzenie na poziomie strony w ASP.Net pokazuje wszystkie ogólne informacje o stronie internetowej podczas jej przetwarzania. Jest to przydatne podczas debugowania, jeśli strona nie działa z jakiegokolwiek powodu. Visual Studio dostarcza szczegółowych informacji o różnych aspektach strony i informacji, takich jak czas dla każdej metody, która jest wywoływana w żądaniu internetowym.

Na przykład, jeśli Twoja aplikacja internetowa ma problem z wydajnością, te informacje mogą pomóc w debugowaniu problemu. Te informacje są wyświetlane, gdy aplikacja jest uruchomiona w Visual Studio.

Jak włączyć śledzenie na poziomie strony w ASP.NET

Przyjrzyjmy się, jak włączyć śledzenie na poziomie strony dla aplikacji ASP.Net:

Krok 1) Popracujmy nad naszą aplikacją DemoApplication. Otwórz plik demo.aspx w Eksploratorze rozwiązań

Śledzenie na poziomie strony w ASP.NET

Krok 2) Dodaj poniższy wiersz kodu, aby włączyć śledzenie strony. W deklaracji Page po prostu dodaj linię Trace=”true”. Ta linia kodu umożliwi śledzenie na poziomie strony.

Śledzenie na poziomie strony w ASP.NET

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

Uruchom aplikację w programie Visual Studio.

Wynik:-

Śledzenie na poziomie strony w ASP.NET

Teraz, gdy strona internetowa Demo.aspx jest wyświetlana, otrzymasz mnóstwo informacji o stronie. Informacje takie jak czas dla każdego aspektu cyklu życia strony są wyświetlane na tej stronie.

Obsługa błędów: wyświetlanie niestandardowej strony błędu

In ASP.Net, możesz wyświetlać użytkownikom niestandardowe strony błędów. Jeśli aplikacja zawiera jakikolwiek błąd, niestandardowa strona wyświetli ten błąd użytkownikowi.

W naszym przykładzie najpierw dodamy stronę HTML. Na tej stronie wyświetli się użytkownikowi ciąg „Przyglądamy się problemowi”. Następnie dodamy kod błędu do naszej strony demo.aspx, aby wyświetlić stronę błędu.

Wykonajmy poniższe kroki

Krok 1) Popracujmy nad naszą aplikacją DemoApplication. Dodajmy do aplikacji stronę HTML

  1. Kliknij prawym przyciskiem myszy aplikację DemoApplication w Eksploratorze rozwiązań
  2. Wybierz opcję menu „Dodaj”->Strona HTML

Obsługa błędów w ASP.Net

Krok 2) W kolejnym kroku musimy nadać nazwę nowej stronie HTML.

  1. Podaj nazwę jako „ErrorPage”.
  2. Kliknij przycisk „OK”, aby kontynuować.

Obsługa błędów w ASP.Net

Krok 3) Errorpage automatycznie otworzy się w Visual Studio. Jeśli przejdziesz do Solution Explorer, zobaczysz dodany plik.

Obsługa błędów w ASP.Net

Dodaj linię kodu „Przyglądamy się problemowi” do strony HTML. Nie musisz zamykać pliku HTML przed wprowadzeniem zmian w pliku web.config.

Obsługa błędów w ASP.Net

<!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) Teraz musisz dokonać zmiany w pliku web.config. Ta zmiana powiadomi, że za każdym razem, gdy w aplikacji wystąpi błąd, należy wyświetlić niestandardową stronę błędu.

Znacznik „customErrors” umożliwia zdefiniowanie niestandardowej strony błędu. Właściwość defaultRedirect jest ustawiona na nazwę naszej niestandardowej strony błędu utworzonej w poprzednim kroku.

Obsługa błędów w ASP.Net

<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) Teraz dodajmy trochę wadliwego kodu do strony demo.aspx.cs. Otwórz tę stronę, klikając dwukrotnie plik w Solution Explorer

Obsługa błędów w ASP.Net

Dodaj poniższy kod do pliku Demo.aspx.cs.

  • Te linie kodu służą do odczytywania linii tekstu z pliku.
  • Plik ma znajdować się na dysku D i mieć nazwę „Przykład.txt”.
  • Ale w naszej sytuacji ten plik tak naprawdę nie istnieje. Zatem ten kod spowoduje błąd podczas działania aplikacji.

Obsługa błędów w ASP.Net

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

Teraz wykonaj kod w visual Studio i powinieneś otrzymać poniższe dane wyjściowe.

Wynik:-

Obsługa błędów w ASP.Net

Powyższa strona pokazuje, że w aplikacji został wywołany błąd. W rezultacie użytkownikowi wyświetlana jest strona Error.html.

Nieobsługiwany wyjątek ASP.NET

Nawet w najlepszym scenariuszu mogą wystąpić błędy, których nie można przewidzieć.

Załóżmy, że użytkownik przechodzi na niewłaściwą stronę w aplikacji. Jest to coś, czego nie da się przewidzieć. W takich przypadkach ASP.Net może przekierować użytkownika do errorpage.html.

Zobaczmy przykład na ten temat.

  • Będziemy używać tej samej aplikacji „DemoApplication”, która zawiera plik Errorpage.html.
  • Spróbujemy wyświetlić stronę internetową, która nie istnieje w naszej aplikacji.
  • W tym przypadku powinniśmy zostać przekierowani na naszą stronę ErrorPage.html. Zobaczmy, jakie kroki należy wykonać, aby to osiągnąć.

Krok 1) Popracujmy nad naszą aplikacją DemoApplication. Otwórz plik Global.asax.cs w Eksploratorze rozwiązań

Nieobsługiwany wyjątek ASP.NET

UWAGA: Plik global.asax.cs służy do dodawania kodu, który będzie stosowany na wszystkich stronach aplikacji.

Krok 2) Dodaj poniższy wiersz kodu do pliku global.asax.cs. Linie te zostaną użyte do sprawdzenia błędów i odpowiedniego wyświetlenia strony ErrorPage.html.

Nieobsługiwany wyjątek ASP.NET

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

Wyjaśnienie kodu: -

  1. Pierwsza linia to procedura obsługi zdarzenia Application_Error. To zdarzenie jest wywoływane za każdym razem, gdy w aplikacji wystąpi błąd. Pamiętaj, że nazwa zdarzenia musi brzmieć „Błąd_aplikacji”. Parametry powinny być takie, jak pokazano powyżej.
  2. Następnie definiujemy obiekt typu klasy HttpException. Jest to standardowy obiekt, który będzie przechowywał wszystkie szczegóły błędu. Następnie używamy metody Server.GetLastError, aby uzyskać wszystkie szczegóły ostatniego błędu, który wystąpił w aplikacji.
  3. Następnie sprawdzamy, czy kod błędu ostatniego błędu to 404. (Kod błędu 404 to standardowy kod zwracany, gdy użytkownik przegląda stronę, która nie została znaleziona). Następnie przenosimy użytkownika na stronę ErrorPage.html, jeśli kod błędu pasuje.

Teraz uruchom kod w programie Visual Studio, a powinieneś otrzymać poniższy wynik

Wynik:-

Przeglądaj stronę http://localhost:53003/Demo1.aspx . Pamiętaj, że w naszej aplikacji nie ma pliku Demo1.aspx. Otrzymasz wówczas poniższe dane wyjściowe.

Nieobsługiwany wyjątek w ASP.NET

Powyższa strona pokazuje, że w aplikacji został wywołany błąd. W rezultacie użytkownikowi wyświetlana jest strona Error.html.

Rejestrowanie błędów ASP.NET

Rejestrując błędy aplikacji, pomaga deweloperowi debugować i rozwiązywać błędy w późniejszym czasie. ASP.Net ma możliwość rejestrowania błędów. Odbywa się to w pliku Global.asax.cs, gdy błąd jest rejestrowany. Podczas procesu rejestrowania komunikat o błędzie może zostać zapisany w pliku dziennika.

Zobaczmy przykład na ten temat.

  • Będziemy używać tej samej aplikacji DemoApplication, która zawiera plik Errorpage.html.
  • Spróbujemy wyświetlić stronę internetową, która nie istnieje w naszej aplikacji.
  • W tym przypadku powinniśmy zostać przekierowani na naszą stronę ErrorPage.html.
  • Jednocześnie zapiszemy komunikat o błędzie do pliku dziennika. Zobaczmy, jakie kroki należy wykonać, aby to osiągnąć.

Krok 1) Popracujmy nad naszą aplikacją DemoApplication. Otwórz plik Global.asax.cs w Eksploratorze rozwiązań

Rejestrowanie błędów ASP.NET

Krok 2) Dodaj poniższy wiersz kodu do global.asax.cs. Sprawdzi on błędy i wyświetli odpowiednią stronę ErrorPage.html. Jednocześnie zarejestrujemy szczegóły błędów w pliku o nazwie „AllErrors.txt”. W naszym przykładzie napiszemy kod, aby utworzyć ten plik na dysku D.

Rejestrowanie błędów ASP.NET

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

Wyjaśnienie kodu: -

  1. Pierwsza linia polega na pobraniu samego błędu za pomocą metody „Server.GetLastError”. Wartość ta jest następnie przypisywana do zmiennej „exc”.
  2. Następnie tworzymy pustą zmienną łańcuchową o nazwie „str”. Rzeczywisty komunikat o błędzie otrzymujemy za pomocą właściwości „exc.Message”. Właściwość exc.Message będzie zawierała dokładny komunikat dotyczący każdego błędu, który wystąpi podczas uruchamiania aplikacji. Wartość ta jest następnie przypisywana do zmiennej łańcuchowej.
  3. Następnie definiujemy plik o nazwie „AllErrors.txt”. To tutaj będą wysyłane wszystkie komunikaty o błędach. Piszemy ciąg „str”, który zawiera wszystkie komunikaty o błędach do tego pliku.
  4. Na koniec przenosimy użytkownika do pliku ErrorPage.html.

Wynik:-

Przeglądaj stronę http://localhost:53003/Demo1.aspx . Pamiętaj, że w naszej aplikacji nie ma pliku Demo1.aspx. Otrzymasz wówczas poniższe dane wyjściowe.

Rejestrowanie błędów ASP.NET

Jednocześnie, jeśli otworzysz plik „AllErrors.txt”, zobaczysz poniższe informacje.

Rejestrowanie błędów ASP.NET

Komunikat o błędzie można później przekazać deweloperowi w celu przeprowadzenia debugowania.

Podsumowanie

  • ASP.Net ma możliwość debugowania i obsługi błędów.
  • Debugowanie można osiągnąć, dodając punkty przerwania do kodu. Następnie uruchamia się opcję Start with Debugging w Visual Studio, aby debugować kod.
  • Śledzenie to funkcja dostarczająca więcej informacji podczas działania aplikacji. Można to zrobić na poziomie aplikacji lub strony.
  • Na poziomie strony należy dodać do dyrektywy page kod Trace=true.
  • Na poziomie aplikacji tworzona jest dla aplikacji dodatkowa strona o nazwie Trace.axd. Zapewnia to wszystkie niezbędne informacje dotyczące śledzenia.