Poziom strony Asp.Net Tracing, debugowanie, obsługa błędów
⚡ Inteligentne podsumowanie
Debugowanie ASP.NET, traci obsługa błędów w programie Visual Studio pomagają programistom wcześnie wykrywać problemy i śledzić żądania trace.axd i przekierowuje użytkowników do niestandardowych stron błędów, gdy w trakcie cyklu rozwoju i produkcji wystąpią nieobsłużone wyjątki.
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 programie Visual Studio jest to możliwe w przypadku aplikacji ASP.NET. Program Visual Studio służy do debugowania i oferuje 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. Punkty te służą do wstrzymywania wykonywania uruchomionego programu. Pozwala to programiście zrozumieć, co dzieje się w programie w danym momencie.
Rozważ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 widzi, co może być nie tak i odpowiednio koryguje program.
W tym przykładzie wykorzystamy naszą aplikację DemoApplication, którą stworzyliśmy we wcześniejszych 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 przedstawiono 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 programie Visual Studio. Upewnij się, że aplikacja DemoApplication jest otwarta w programie Visual Studio.
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”.
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.
- Aby dodać punkt przerwania, należy kliknąć kolumnę, w której ma się on znaleźć. W naszym przypadku chcemy, aby program zatrzymał się na wierszu kodu „Response.Write”. Nie trzeba dodawać żadnego polecenia, aby dodać punkt przerwania. Wystarczy kliknąć wiersz, w którym ma się znaleźć punkt przerwania.
- 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.
Wynik:-
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.
Czym jest Tracw ASP.NET?
Zastosowanie tracING pozwala sprawdzić, czy żądane strony powodują błąd. Kiedy tracpo włączeniu zostanie wyświetlona dodatkowa strona o nazwie tracPlik e.axd został dodany do aplikacji (patrz obrazek poniżej). Ta strona jest dołączona do aplikacji i wyświetla wszystkie żądania i ich status.
Jak włączyć Tractworzenie aplikacji w ASP.NET
Przyjrzyjmy się, jak włączyć tracing dla Aplikacja ASP.NET:
Krok 1) Popracujmy nad naszą aplikacją demonstracyjną. Otwórz plik web.config w Eksploratorze rozwiązań.
Krok 2) Dodaj poniższy wiersz kodu do pliku web.config. tracOświadczenie jest używane w celu umożliwienia tracdla aplikacji.
- Limit żądania w tracOświadczenie określa liczbę żądań stron, które muszą zostać tracwyd.
- W naszym przykładzie limit wynosi 40. Podajemy limit, ponieważ wyższa wartość spowoduje pogorszenie wydajności aplikacji.
<?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>
Uruchom aplikację DemoApplication w programie Visual Studio.
Wynik:-
Jeśli teraz przejdziesz do URL http://localhost:53003/trace.axd, zobaczysz informacje dla każdego żądania. Tutaj możesz sprawdzić, czy w aplikacji wystąpiły jakieś błędy. Na stronie wyświetlane są następujące typy informacji:
- Czas żądania strony internetowej.
- Nazwa żądanej strony internetowej.
- Kod statusu żądania internetowego (kod statusu 200 oznacza, że żądanie zostało zrealizowane pomyślnie).
- Link „Wyświetl szczegóły” umożliwia wyświetlenie szczegółowych informacji o żądaniu internetowym. Jednym z ważnych szczegółów są informacje w nagłówku, które pokazują, jakie informacje są wysyłane w nagłówku każdego żądania internetowego.
Poziom strony Tracw ASP.NET
Poziom strony TracING W ASP.NET wyświetla wszystkie ogólne informacje o stronie internetowej podczas jej przetwarzania. Jest to przydatne podczas debugowania, jeśli strona z jakiegokolwiek powodu nie działa. Visual Studio udostępnia szczegółowe informacje o różnych aspektach strony, takie jak czas wywołania każdej metody w żądaniu internetowym.
Na przykład, jeśli Twoja aplikacja internetowa ma problem z wydajnością, te informacje mogą pomóc w debugowaniu. Informacje te są wyświetlane po uruchomieniu aplikacji w programie Visual Studio.
Jak włączyć Tracna poziomie strony w ASP.NET
Przyjrzyjmy się, jak włączyć poziom strony tracdla aplikacji ASP.NET:
Krok 1) Popracujmy nad naszą aplikacją DemoApplication. Otwórz plik demo.aspx w Eksploratorze rozwiązań.
Krok 2) Dodaj poniższy wiersz kodu, aby włączyć stronę tracing. W deklaracji strony wystarczy dodać atrybut Trace=”true”. Ta linia kodu umożliwi dostęp na poziomie strony tracing.
<%@ 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>
Uruchom aplikację w programie Visual Studio.
Wynik:-
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. Strona ta wyświetli użytkownikowi komunikat „Badamy problem”. Następnie dodamy kod błędu do strony demo.aspx, aby wyświetlić stronę błędu. Wykonajmy poniższe kroki.
Krok 1) Popracujmy nad naszą aplikacją demonstracyjną. Dodajmy do niej stronę HTML.
- Kliknij prawym przyciskiem myszy aplikację DemoApplication w Eksploratorze rozwiązań.
- Wybierz opcję menu Dodaj->Strona HTML.
Krok 2) W kolejnym kroku musimy nadać nazwę nowej stronie HTML.
- Podaj nazwę ErrorPage.
- Kliknij przycisk OK, aby kontynuować.
Krok 3) Strona ErrorPage automatycznie otworzy się w programie Visual Studio. Jeśli przejdziesz do Eksploratora rozwiązań, zobaczysz dodany plik.
Dodaj wiersz kodu „We are looking into the problem” do strony HTML. Nie musisz zamykać pliku HTML przed wprowadzeniem zmian w pliku web.config.
<!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>
Krok 4) Teraz musisz wprowadzić zmianę w pliku web.config. Ta zmiana spowoduje powiadomienie, że za każdym razem, gdy w aplikacji wystąpi błąd, konieczne będzie wyświetlenie niestandardowej strony błędu. Tag 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.
<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ę błędnego kodu do strony demo.aspx.cs. Otwórz tę stronę, klikając dwukrotnie plik w Eksploratorze rozwiązań.
Dodaj poniższy kod do pliku Demo.aspx.cs.
- Te wiersze kodu służą do odczytywania wierszy tekstu z pliku.
- Plik powinien znajdować się na dysku D i mieć nazwę Example.txt.
- Ale w naszej sytuacji ten plik tak naprawdę nie istnieje. Zatem ten kod spowoduje błąd podczas działania aplikacji.
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:-
Powyższa strona pokazuje, że w aplikacji wystąpił błąd. W rezultacie użytkownikowi wyświetlana jest strona ErrorPage.html.
Nieobsługiwany wyjątek ASP.NET
Nawet w najlepszym scenariuszu mogą wystąpić błędy, których po prostu nie da się przewidzieć. Załóżmy, że użytkownik przejdzie do niewłaściwej strony w aplikacji. Tego nie da się przewidzieć. W takich przypadkach ASP.NET może przekierować użytkownika do pliku ErrorPage.html.
Zobaczmy przykład.
- Użyjemy tej samej aplikacji DemoApplication, która ma 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, jak to zrobić.
Krok 1) Popracujmy nad naszą aplikacją demonstracyjną. Otwórz plik Global.asax.cs w Eksploratorze rozwiązań.
Uwaga: Plik Global.asax.cs służy do dodawania kodu, który będzie miał zastosowanie na wszystkich stronach aplikacji.
Krok 2) Dodaj poniższy wiersz kodu do pliku Global.asax.cs. Te wiersze będą używane do sprawdzania błędów i wyświetlania strony ErrorPage.html.
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 Wyjaśnienie:-
- Pierwszy wiersz to obsługa zdarzenia Application_Error. To zdarzenie jest wywoływane za każdym razem, gdy w aplikacji wystąpi błąd. Należy pamiętać, że nazwa zdarzenia musi brzmieć Application_Error, a parametry powinny być takie, jak pokazano powyżej.
- 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.
- Następnie sprawdzamy, czy kod ostatniego błędu to 404 (kod błędu 404 to standardowy kod zwracany, gdy użytkownik przegląda stronę, której nie znaleziono). Jeśli kod błędu się zgadza, przenosimy użytkownika na stronę ErrorPage.html.
Teraz uruchom kod w programie Visual Studio. 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.
Powyższa strona pokazuje, że w aplikacji wystąpił błąd. W rezultacie użytkownikowi wyświetlana jest strona ErrorPage.html.
Rejestrowanie błędów ASP.NET
Rejestrując błędy aplikacji, programista może później debugować i rozwiązywać błędy. ASP.NET umożliwia rejestrowanie błędów. Odbywa się to w pliku Global.asax.cs podczas rejestrowania błędu. Podczas rejestrowania komunikat o błędzie może zostać zapisany w pliku dziennika.
Zobaczmy przykład.
- Użyjemy tej samej aplikacji DemoApplication, która ma 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, jak to zrobić.
Krok 1) Popracujmy nad naszą aplikacją demonstracyjną. Otwórz plik Global.asax.cs w Eksploratorze rozwiązań.
Krok 2) Dodaj poniższy wiersz kodu do pliku Global.asax.cs. Sprawdzi on błędy i wyświetli odpowiednią stronę ErrorPage.html. Jednocześnie zapiszemy szczegóły błędów w pliku AllErrors.txt. W naszym przykładzie napiszemy kod, który utworzy ten plik na dysku D.
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 Wyjaśnienie:-
- Pierwszy wiersz służy do pobrania samego błędu za pomocą metody Server.GetLastError. Jest on następnie przypisywany do zmiennej exc.
- Następnie tworzymy pustą zmienną typu string o nazwie str. Rzeczywisty komunikat o błędzie jest pobierany za pomocą właściwości exc.Message. Właściwość exc.Message będzie zawierała dokładny komunikat o każdym błędzie, który wystąpi podczas uruchamiania aplikacji. Jest on następnie przypisywany do zmiennej typu string.
- Następnie definiujemy plik o nazwie AllErrors.txt. To właśnie do niego będą wysyłane wszystkie komunikaty o błędach. Zapisujemy do niego ciąg znaków str, który zawiera wszystkie komunikaty o błędach.
- 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.
Jednocześnie, jeśli otworzysz plik AllErrors.txt, zobaczysz poniższe informacje.
Komunikat o błędzie można później przekazać deweloperowi w celu przeprowadzenia debugowania.





























