2010-06-17 21 views
8

Mam dziwny błąd. Debuguję stronę asp.net i nagle przestaje. Visual Studio pozostaje w trybie debugowania, a moja aplikacja internetowa działa bez zarzutu. Znalazłem post na this, ale nie sądzę, aby problem powodował wątek w tle. Istnieje nawet próba złapania kodu, w którym zwykle zatrzymuje się debugowanie, ale blokowanie nie jest uruchamiane ... Za każdym razem, gdy go wypróbowuję, zatrzymuje się w innym miejscu kodu.Debugowanie asp.net nagle zatrzymuje się

+0

Czy dzieje się to, gdy siedzisz w punkcie przerwania przez dłuższy czas? –

+0

Tak. Wel, nie nazwałbym tego rozszerzeniem, ale w kolejności 10 sekund. + dzieje się więcej, gdy ustawię więcej punktów przerwania. –

+0

Udało ci się znaleźć rozwiązanie. Mam dokładnie ten sam problem, tylko dla mnie mam 2 projekty asp.net (app.webform.old i app.mvc3.new), gdy uruchamiam projekt mvc, formularz sieciowy również działa w cassini! (Nie używam IIS, ale cassini) – gideon

Odpowiedz

6

Ustawiłeś swój debugger, aby złamał wszystkie wyjątki, a nie tylko nieobsługiwane wyjątki?

Debugowanie -> Wyjątki -> Zaznacz pole "Opuszczony" dla wszystkiego (lub przynajmniej tylko Wyjątki dla Runtime Common Language). Jeśli podczas debugowania zostanie zgłoszony wyjątek, w dowolnym wątku powinno to spowodować, że debugger podświetli i złamie "rzutnika".

Inną rzeczą, którą należy wypróbować, jest zresetowanie wszystkich ustawień IDE. Miałem różne dziwne zachowania, zanim ustawienia uległy uszkodzeniu, a IDE przestał działać rozsądnie: Narzędzia -> Ustawienia importu i eksportu -> Resetuj wszystkie ustawienia.

Oprócz odpowiedzi Daniela Dysona - jeśli "zatrzymasz się", jak sugeruje (po zakończeniu "debugowania" debugowania), otwórz okno debugowania "Wątki". Czy są jakieś wątki, które mają wpis w "kolumnie lokalizacji". Jeśli tak, to prawdopodobnie Twój kod jest wykonywany. Kliknij po kolei. Czy możesz wyjaśnić, co robi każdy wątek, czy też rzuca to światło na dziwne zachowanie?

1

Dodaj punkt przerwania w zdarzeniu Application_Error w pliku Global.asax.

3

Czy próbowałeś uderzanie Pauza || przycisk? Spowoduje to zatrzymanie debuggera w dowolnym miejscu, więc jeśli znajdujesz się w nieskończonej pętli poza blokiem catch catch, będziesz mógł dowiedzieć się, gdzie.

1

Upewnij się, że ustawienie "Ping Enabled" jest ustawione na "False" w konfiguracji IIS.

W IIS7 kliknij prawym przyciskiem myszy na AppPool, wybierz "Ustawienia zaawansowane", przejdź w dół do ustawienia Ping Enabled i zmień wartość na false.

Jeśli używasz IIS6, ustawienie jest nieco inne. Sądzę, że nazywa się to "Ping Interval", jeśli dobrze pamiętam i jest ustawiona na kilka sekund.

Powiązane problemy