Artykuł pochodzi w serii przygotowań do egzaminu 70-562 ASP.NET.
Debugowanie witryny sieci Web może być trudnym procesem ze względu choćby na to, że zazwyczaj klient i serwer są na różnych maszynach. Ponad to może być również rozdzielona baza danych, dane w sesji, ciasteczkach itd. No i po tak strasznym wstępie można w końcu powiedzieć, że debugowanie dla Visual Studio a raczej narzędzi które udostępnia nie jest jakimś większym problem ;)
Konfiguracja debugowania w ASP.NET
Standardowo w Visual Studio do debugowania możemy użyć breakpoints, watch window, error information itd. Najpierw jednak wypadałoby skonfigurować nasze środowisko do tego procesu. Istnieją dwa miejsca gdzie możemy to zrobić: właściwości projektu strony lub web.config.
Aktywacja debugera ASP.NET
Pierwszym krokiem jest umożliwienie debugowania w ASP.NET we właściwościach strony. Jest to domyślnie włączone ale może się zdarzyć, że z jakiś przyczyn np. chcielibyśmy to zmienić. Aby to zrobić musimy wykonać następujące czynności:
- Kliknij PPM na projekt strony w Solution Explorer
- Wybieramy Property Pages
- Następnie z listy wybieramy Start Option
- I widzimy dostępne okno (jak poniżej) w którym możemy np. wyłączyć debugowanie dla ASP.NET

Konfiguracja debugera
Drugim krokiem może być ograniczanie debugowania np. tylko dla poszczególnych stron. Domyślnie jest to wyłączone. Włączając debugowanie oczywiście tracimy na wydajności strony. Ponad to podczas wystąpienia błędy dostaniemy o nim pełna informacje poza środowiskiem Visual Studio co może być niebezpieczne i potencjalnie wykorzystane. Dlatego debugowanie możemy sobie włączyć na poszczególnych stornach ale jest to zalecane tylko w czasie tworzenia i rozwoju projektu. Aby włączyć debugowanie dla całej witryny należy umieścić w web.configu następującą sekcje:
1: <configuration>
2: <system.web>
3: <compilation debug="true">
4: </compilation>
5: <system.web>
6: </configuration>
Ale czasami jest chcielibyśmy ograniczyć debugowanie indywidualnie dla poszczególnych stron. W tym wypadku musimy umieścić następujący kod w dyrektywie @Page
1: <%@ Page Debug="true" ... %>
Definiowanie własnych błędów
Jest wielce prawdopodobne, że przy wysypaniu się na czymś naszej strony chcielibyśmy pokazać jakiś swój własny komunikat niż ten domyślnie ustawiony w środowisku. Również gdzie ewentualnie można znaleźć pomoc itd.
Konfiguracja niestandardowej strony błędu na poziomie witryny
Możemy ustawić naszą niestandardową stronę błędu umieszczając w web.congifu sekcję <customErrors>. Element ten ma dwa atrybuty mode i defaultRedirect.
1: <configuration>
2: <system.web>
3: <customErrors defaultRedirect="SiteErrorPage.aspx" mode="RemoteOnly">
4: </customErrors>
5: <system.web>
6: </configuration>
mode=”RemoteOnly” oznacza, włączenie custom error tylko dla zdalnych klientów. Atrybut DefaultRedirect jest używany do wskazania ścieżki do domyślnej strony błędu.
Konfiguracja strony błędu dla specyficznego błędu
Możliwe jest ustawienie różnych storn dla specyficznego rodzaju kodu błędu. Zapewnia to większą komunikacje z użytkownikiem. Np. użytkownik dostaje kod 403 i my przekierowujemy go na stronę gdzie jest ładnie i zgrabnie wyjaśnione użytkownikowi, że np. nie ma dostępu do danego zasobu bądź strony. Chcąc to zrobić musimy umieść w web.configu następującą sekcje:
1: <configuration>
2: <system.web>
3: <customErrors defaultRedirect="SiteErrorPage.aspx" mode="RemoteOnly">
4: <error statusCode="403" redirect="RestrictedAccess.aspx" />
5: </customErrors>
6: <system.web>
7: </configuration>
Zdalne debugowanie
Nie zawsze jest tak, że chcemy debugować kod na lokalnej stacji itd. Czasami może zaistnieć potrzeba zrobienia tego zdalnie. Proces uruchomiania zdalnego debugowania ułatwia nam Remote Debugging Monitor (Msvsmon.exe). Musimy uruchomić to narzędzie jeśli mamy zamiar debugować. U nas na dysku mając domyślnie zainstalowanego VS możemy szukać tego narzędzia w:
Program Files\Microsoft Visual Studio9.0\Common7\IDE\Remote Debugger\x64
Po włączeniu go mamy cały interfejs który m.in informuje nas o zdarzeniach podczas debugowania.

W TK jest opisane o autoryzacji takiego zdalnego debugowania, i jego konfiguracji. Odsyłam do tego chętnych.
Debugowanie skryptów po stronie klienta
Na koniec chciałbym jeszcze wspomnieć o tym, że jest możliwe debugowanie skryptów. Jest to przydatne jeżeli dużo piszemy w javascript. Na początek musimy włączyć w przeglądarce możliwość debugowania. W tym celu odpalamy przeglądarkę IE, wybieramy Narzędzia--->Opcje internetowe---->Zaawansowane i tam musimy “odhaczyć” wyłącz debugowanie skryptu.

I teraz możemy normalnie korzystać z debugowania w skryptach.
To tyle na dzisiaj. Jak co tydzień życzę Wam miłego weekendu i zapraszam w poniedziałek ;)