Udostępnij za pośrednictwem


Rozwiązywanie problemów z debugowaniem zdalnym

Dotyczy: Visual Studio

W tym artykule przedstawiono kroki rozwiązywania problemów i rozwiązania niektórych typowych problemów z debugowaniem zdalnym.

Aby rozwiązać problemy z debugowaniem zdalnym, pierwszym krokiem jest sprawdzenie komunikatów o błędach i zbadanie ich. Komunikat może zawierać link zawierający więcej informacji.

Następnie przed próbą debugowania sprawdź, czy aplikacja działa poprawnie na serwerze.

W przeciwnym razie poniżej przedstawiono najczęstsze problemy i rozwiązania:

Zainstalowana niepoprawna wersja zdalnego debugera

W scenariuszach, w których ręcznie zainstalujesz debuger zdalny na maszynie zdalnej, upewnij się, że zainstalowana wersja jest zgodna z wersją programu Visual Studio. Aby uzyskać bieżące linki do pobierania zdalnego debugera, zobacz Remote Debugger.

Kompilacja wydania jest wdrażana na serwerze zamiast kompilacji debugowania

Narzędzie Publikuj i niektóre inne opcje publikowania mają oddzielne ustawienie konfiguracji debugowania, które należy ustawić. (Podczas uruchamiania aplikacji w programie Visual Studio możesz wybrać kompilację debugowania, ale nie oznacza to zainstalowania kompilacji debugowania na serwerze).

Możesz dołączyć do aplikacji zdalnej, ale nie można trafić do punktów przerwania (lub symbole debugowania nie zostaną załadowane)

W przypadku tego problemu może zostać wyświetlony komunikat Brak załadowanych symboli.

Użyj okna Moduły, aby dowiedzieć się, jaki jest stan ładowania symbolu dla modułu, oraz moduły, które debuger traktuje jako kod użytkownika lub Mój kod.

  • Kolumna Stan symboli wskazuje, czy symbole załadowane poprawnie dla modułu.
  • Kolumna Kod użytkownika wskazuje, czy moduł, który próbujesz debugować, jest klasyfikowany jako Mój kod. Jeśli jest on niepoprawnie wyświetlany jako Mój kod, prawdopodobnie masz kompilację wydania wdrożona na serwerze. Pliki binarne wydania są zoptymalizowane i nigdy nie są traktowane jako Mój kod, więc wyłącz tylko mój kod lub wdróż kompilację debugowania na serwerze.
  • Jeśli ustawienie Kod użytkownika jest poprawne, ale symbole nie są ładowane, sprawdź, czy debuger używa poprawnych plików symboli. Debuger ładuje tylko symbole (pliki pdb), które dokładnie pasują do plików pdb utworzonych podczas kompilowania aplikacji (czyli oryginalnych plików pdb lub kopii). W przypadku zdalnego debugowania systemu Windows pliki PDB są domyślnie odczytywane na maszynie programu Visual Studio, a nie z serwera. (Jednak msvsmon ma argument wiersza polecenia, aby umożliwić powrót do zdalnych plików .pdb).

Aby uzyskać więcej informacji, zobacz Rozwiązywanie problemów z punktami przerwania.

(ASP.NET) Wersja ASP.NET uruchomiona na serwerze nie jest taka sama jak wersja skonfigurowana dla aplikacji

Może być konieczne zainstalowanie poprawnej wersji ASP.NET lub ASP.NET Core na serwerze lub na komputerze lokalnym. Aby sprawdzić wersję aplikacji ASP.NET, kliknij prawym przyciskiem myszy projekt w Eksplorator rozwiązań i wybierz polecenie Właściwości. Sprawdź kartę Kompilacja. Konfiguracja ASP.NET na serwerze jest specyficzna dla scenariusza. W przypadku aplikacji platformy ASP.NET Framework może być konieczne ustawienie wersji struktury w pliku web.config .

Nie widzisz potrzebnego procesu w oknie dialogowym Dołączanie do procesu

Niektóre scenariusze wymagają ręcznego dołączenia do prawidłowego procesu. Jeśli używasz funkcji Dołączanie do procesu dla danego scenariusza i nie widzisz oczekiwanego procesu:

  • Jeśli filtr procesu wyszukiwania został wcześniej ustawiony, sprawdź, czy chcesz go wyczyścić.
  • Wybierz pozycję Pokaż procesy dla wszystkich użytkowników , aby wyświetlić procesy uruchomione na innych kontach użytkowników.
  • W przypadku wolnych połączeń warto wyłączyć odświeżanie automatyczne.
  • Jeśli zostaną one zmienione z domyślnych, typ połączenia i dołącz do pól mogą ograniczyć procesy wyświetlane na liście.

Nie dołączasz do prawidłowego procesu

Jeśli używasz dołączania do procesu, upewnij się, że dołączasz do odpowiedniego procesu. Aby uzyskać więcej informacji, zobacz Typowe scenariusze debugowania.

Wymagany port nie jest otwarty

W większości konfiguracji ASP.NET wymagane porty są otwierane przez instalację ASP.NET i debugera zdalnego. Może jednak być konieczne sprawdzenie, czy porty są otwarte. Na przykład w scenariuszach maszyn wirtualnych platformy Azure prawdopodobnie trzeba otworzyć port zdalnego debugera i port serwera (na przykład usługi IIS używają portu 80).

Uprawnienia z podwyższonym poziomem uprawnień dla zdalnego debugera mogą być wymagane

W niektórych scenariuszach może być konieczne uruchomienie zdalnego debugera jako administrator. Aby uzyskać więcej informacji, zobacz Uruchamianie zdalnego debugera jako administrator.