2009-07-16 12 views

Odpowiedz

34

Z blogu MSDN: http://blogs.msdn.com/mikhailarkhipov/archive/2005/06/24/432308.aspx

Oto jak uczynić pracę debugowania asp:

  1. Włącz debugowanie ASP na serwerze. (Dodałem także DEBUG verb do rozszerzenia asp, ale nie jestem pewien, czy jest to wymagane).
  2. Otwórz klasyczną ASP w VS 2005.
  3. Ustaw punkt przerwania.
  4. Wyświetl stronę w przeglądarce lub uruchom bez debugowania.
  5. Debugowanie | Dołącz do procesu
  6. Zlokalizuj proces roboczy ASP IIS (w3wp.exe na IIS6), który udostępnia architekturę x86 i skrypt i dołącz jako skrypt.

Od eddiegroves komentarz poniżej:

chodzi Krok # 1 w IIS7 - IIS> ASP> Compilation> Debugging Properties> Włącz Server-side Debugging

+6

Krok 1: Włącz debugowanie ASP na serwerze ..... JAK TO TY ROBISZ ?! –

+3

Nie wiem. Ale pierwsze trafienie od Google wygląda obiecująco: http://technet.microsoft.com/en-us/library/cc738693(WS.10).aspx –

+0

Dam mu szansę. Dzięki. –

2

Zbudowany w klasycznym ASP debugowanie jest dość słabe. Złożę tę ASP obejmują klasę, która działa z Firebug + FirePHP. Pozwala rejestrować wartości (w tym łańcuchy, wielowymiarowe tablice, a nawet obiekty utworzone za pomocą json.asp) do konsoli firebug i wyświetlać wbudowane obiekty kolekcji ASP, które mogą pomóc (szczególnie w przypadku Ajax, w którym nie można wyprowadzać danych debugowania bez zerwanie odpowiedzi jsona.) Czasy i błędy ładowania skryptów Ajax są automatycznie rejestrowane w celu szybkiego podglądu.

https://github.com/dmeagor/ClassicASP-FirePHP

wydany na licencji MIT open source

+0

To najlepsze rozwiązanie, jakie do tej pory widziałem! Dzięki! Trochę poszło, aby przekonać się, że "" wymaga dodania do firedebug.inc lub każdego pliku wraz z "", ale kiedy to rozwiązano, działało jak czar! – GazB

+3

Może to pomoże. Wypróbuj Team Remote ASP Debugger (http://www.remotedebugger.com). Od wielu lat debuguję klasyczne ASP. –

+0

Chciałbym, aby to zadziałało, ale pojawia się błąd, gdy tylko spróbuję wywołać "log": 'Type mismatch: 'toJson' /lib/asp/ClassicASP-FirePHP/1.2/firedebug.inc, wiersz 72' . Czy to nadal działa w świecie post-Firebug? Czy działa w standardowej konsoli FF/Chrome? –

5

Zdaję sobie sprawę, to jest stary, ale myślałem, że będę odpowiadać, aby pomóc innym, ponieważ szukałem czegoś innego się.

Możesz użyć programu Visual Studio do debugowania klasycznej ASP.

Jeśli prowadzisz lokalną kopię IIS, po prostu dołączyć debugera do procesu W3wp.exe i można ustawić punkty przerwania, dodać zmienne do oglądania okien itp

Jeśli masz więcej niż 1 stron , warto uruchomić każdy z osobnej puli aplikacji, a będziesz w stanie zidentyfikować różne procesy w3wp.exe w oknie Dołącz proces.

Wystarczy wybrać "script" jako typ debuggera. Jeśli używasz IISExpress, to proces iisexpress.exe jest prawidłowy do dołączenia.

3

Odkryłam, że użyteczne, aby umożliwić ustawienie znajduje się na poziomie serwera pod ASP>Compilation>Właściwości debugowania>Wyślij błędy do przeglądarki. Ustaw to na "True".

Może to nie być odpowiednie w każdych okolicznościach (np. Na stronie internetowej).

+0

Czy można to zrobić, ale wysłać błędy do pliku dziennika? –

+1

@BenjaminGoodacre W IIS 7.5 istnieje ustawienie na poziomie serwera w sekcji * ASP * o nazwie * Enable Log Error Requests *, a opis to "Kontroluje, czy serwer WWW zapisuje błędy ASP w sekcji aplikacji dziennika zdarzeń systemu Windows. błędy są zapisywane domyślnie w przeglądarce klienta i plikach dziennika IIS. ". Zatem błędy powinny być już rejestrowane przez IIS. –

0

To jest droga ja zorientowaliśmy się:

powstrzymać (zapis stop) w miejscu, w którym chcesz trafić punkt diagnostyczny. Następnie uruchom aplikację w przeglądarce. Kiedy zatrzyma się wykonywanie, otworzy się okno debugowania debugowania z prośbą o debugowanie za pomocą Visual Studio (musi być zainstalowana wersja VS). Następnie poprosi o dołączenie procesu i możesz użyć klawisza f10, f11, aby przejść krok po kroku. Możesz zobaczyć dane za pomocą funkcji dodawania zegarka.

0

Używam następujących (które dostałem od gdzieś online), aby napisać do pliku dziennika. Wolę metodę pisania bezpośrednio na konsolę w przeglądarce Firefox lub Chrome, ale działa to całkiem dobrze.

UWAGA: "znacznik czasu" jest moją niestandardową funkcją. Prawdopodobnie możesz odgadnąć, co robi i prawdopodobnie rzucić własną. ;-)

function error_log(message) 
    dim objFSO, objLog 
    Set objFSO = CreateObject("Scripting.FileSystemObject") 
    Set objLog = objFSO.OpenTextFile("ASP_errors.log", 8, true) 
    objLog.WriteLine "[" & timestamp & "] VBS Message: " & message 
    objLog.close 
    set objLog = nothing 
    set objFSO = nothing 
end function 
Powiązane problemy