2009-10-26 13 views
35

Właśnie zainstalowałem VS 2010 Beta 2 i chciałem zagrać z projektem ASP.NET MVC 2. Po prostu dodałem skrypt (alert('hello');) do widoku index.aspx kontrolera głównego i widzę, że to działa. Kiedy jednak próbuję ustawić punkt przerwania, nigdy nie zostaje trafiony. Próbowałem również użyć słowa kluczowego "debugger", a kiedy to zrobię, dostaję rozczarowujący komunikat "nie ma kodu źródłowego dla bieżącej lokalizacji". Otrzymuję tę wiadomość także, gdy próbuję samodzielnie dołączyć do procesu IE, w którym działa moja aplikacja.Debugger skryptów Visual Studio 2010 nie działa dla mnie

Co należy zrobić, aby uzyskać przyjazne doświadczenie debugowania skryptu? (Mam powodzeniem stosowane Firebug do debugowania, ale z jakiegoś powodu wolą debugera VS).

Oto kilka szczegółów z mojej konfiguracji:

  • jestem uruchomienie moje rzeczy w VS 2010 beta 2.
  • IE8 wersja 8.0.7600.16385 jest moją domyślną przeglądarką.
  • Opcja "Wyłącz debugowanie skryptów (Internet Explorer)" nie jest zaznaczona.
  • Opcja "Wyłącz debugowanie skryptów (Inne)" nie jest zaznaczona.
  • W mojej zakładce właściwości "web" projektu ASP.NET MVC 2 debuger ASP.NET jest sprawdzany. Wszystkie pozostałe są odznaczone.
  • Debugowanie skryptów Visual Studio 2008 wydaje się działać dobrze.

Odpowiedz

30

Debugger nie może debugować jednocześnie kodu Silverlight i kodu skryptu, jeśli debugger Silverlight jest wybrany JavaScript debugowanie jest wyłączone.

  1. Przejdź do Właściwości projektu (Alt + Enter).
  2. Dla projektu witryny sieci Web: Wybierz "Opcje uruchamiania". Lub w przypadku aplikacji sieciowej: Przejdź do karty Sieć, a na dole zobaczysz opcję Debugery.
  3. Sprawdź, czy pole wyboru Silverlight NIE jest zaznaczone, jeśli chcesz mieć możliwość debugowania JavaScript. (Szkoda, że ​​interfejs użytkownika nie ma jasności co do tego skutku ubocznego).
+4

Mogę cię pocałować. Próbuję debugować JavaScript w witrynie asp.net, z dołączonym projektem Silverlight. Za każdym razem, gdy próbowałem debugować, dostałem ten dziwny cykl wyskakujących okienek, prosząc mnie o dołączenie debuggera, a potem narzekanie, że debugger był już podłączony. Aby było jasne, przejdź do projektu asp.net w swoim rozwiązaniu i przejdź do właściwości projektu i otwórz zakładkę Web. U dołu znajdują się pola wyboru używane przez debuggery. Wyłączenie debugera Silverlight sprawi, że debuger javascript będzie działać ponownie. Musi to być wpis w wiki lub coś takiego. –

+2

** Dziękuję Mister Cook! ** – Airn5475

+0

@mister ok na mvc3/vs2010 Nie widzę _Start Options_ pod właściwościami projektu – gideon

1

CTRL + Alt + P (Dołącz do procesu), wybierz IE, wybierz "skrypt" dla typu debugowania.

+2

Dzięki za pomysł, ale otrzymuję taki sam komunikat "Nie ma kodu źródłowego dla bieżącej lokalizacji", który otrzymałem, gdy próbowałem uruchomić z F5 i słowem kluczowym "debugger". –

+0

Czy można dodać funkcję w javascript, dołączyć, a następnie utworzyć nowy punkt przerwania na podstawie nazwy funkcji? – popester

7

Miałem takie same problemy. Nie udało mi się przekonać IDE do złamania nawet w punkcie przerwania ustawionym wewnątrz znacznika skryptu. Jednak gdy dodałem "debugger;" ponieważ pierwsza linia w znaczniku skryptu była w stanie przekonać IDE do odpowiedzi, ale potem tylko powiedzieć, że nie można było tego zrobić.

Jednakże udało mi się kliknąć narzędzia do debugowania, takie jak "krok do" i "krok po kroku". Kiedy to zrobiłem, IDE zrobił postęp w niektórych zewnętrznych skryptach, których używam (JQuery i Google Maps). Więc wziąłem blok kodu JavaScript z widoku i umieściłem go w osobnym pliku .js w folderze "Treść". Następnie dodałem znacznik skryptu do odwołania do nowego pliku .js (url = "/Content/Test.js").

To zadziałało ... trochę kłopotliwe, że musisz przejść przez ten wysiłek, ale być może jest coś do powiedzenia, ponieważ JavaScript nie jest zawarty bezpośrednio w widoku. Mam nadzieję, że to błąd, który zamierzają naprawić.

+0

Thx! Pracował jak urok! +1 – Stephane

0

Jak zauważył Ryan powyżej, przeniosłem mój skrypt do osobnego pliku w folderze Skrypty. Dodałem także debugowanie do nazwy skryptu, aby stał się MyTestScript. debugowanie .js. Zawarłem skrypt za pomocą znacznika skryptu i mogłem ustawić punkty przerwania w pliku skryptowym, który trafił w debuggera.

0

Zauważyłem, że narzędzie Google Chrome devloper doskonale pokazuje JavaScript. W moim przypadku zazwyczaj ładuję skrypt za pomocą funkcji getScript jQuery, a wykonanie kodu odbywa się zwykle za pomocą wywołania zwrotnego jQuery po załadowaniu strony lub obsłudze zdarzenia. W Visual Studio 2010 często napotykałem błąd "Brak źródła". Niestety, potrzebuję Chrome do debugowania JavaScript, który jest częścią mojego projektu Visual Studio.

4

Podczas debugowania w IE, VS wydaje się dodawać do eksploratora rozwiązań folder o nazwie "Dokumenty skryptowe".Wewnątrz tego folderu znajduje się kolejny folder o nazwie "Windows Internet Explorer", aw jego wnętrzu widzę wszystkie załadowane skrypty js i (skompilowany) plik HTML aktualnie wyświetlany w IE. Ustawianie punktów przerwania na znacznikach skryptu w tym pliku HTML działa dla mnie.

2

Aby rozwiązać ten problem, przejdź do Właściwości projektu i wybierz "Opcje uruchamiania". Następnie sprawdź pole wyboru kodu macierzystego. i Odznacz pole wyboru Silverlight, ponieważ obie opcje nie działają razem.

0

Użycie osobnego pliku js ma swoje wady. Na przykład nie można używać pomocników MVC. Microsoft naprawdę musi wymyślić ten jeden.

Intellisense również nie działa prawidłowo w blokach skryptu na widoku, nawet jeśli zawierają komentarze referencyjnych tak:

/// <reference path="/Scripts/jquery-1.6-vsdoc.js" /> 
/// <reference path="/Scripts/jquery-1.6.js" /> 

Intellisense działa dobrze w pliku js z tym podejściem chociaż.

Powiązane problemy