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 z większą ilością 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:

Nieprawidłowa wersja zainstalowanego debugera zdalnego

W przypadku scenariuszy, w których ręcznie zainstalujesz zdalny debuger na komputerze zdalnym, upewnij się, że zainstalowana wersja jest zgodna z wersją programu Visual Studio. Aby uzyskać bieżące linki do pobierania debugera zdalnego, zobacz Debuger zdalny.

Kompilacja wydania jest wdrażana na serwerze zamiast w kompilacji debugowania

Narzędzie Publikowanie i inne opcje publikowania mają oddzielne ustawienie konfiguracji debugowania, które należy ustawić. (Podczas uruchamiania aplikacji w programie Visual Studio może być wybierana kompilacja debugowania, ale nie oznacza to, że zainstalowano kompilację debugowania na serwerze).

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

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

Okno Moduły umożliwia określenie stanu ładowania symboli dla modułu oraz modułów, które debuger traktuje jako kod użytkownika lub Mój kod.

  • Kolumna Stan symbolu wskazuje, czy symbole zostały poprawnie załadowane 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żoną 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 prawidłowych plików symboli. Debuger ładuje tylko symbole (pliki pdb), które dokładnie pasują do plików pdb utworzonych podczas tworzenia aplikacji (tj. oryginalnych plików pdb lub kopii). W przypadku zdalnego debugowania systemu Windows domyślnie pliki PDB są 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 pozycję Właściwości. Sprawdź kartę Kompilacja. Konfiguracja ASP.NET na serwerze jest specyficzna dla scenariusza. W przypadku aplikacji ASP.NET Framework może być konieczne ustawienie wersji struktury w pliku web.config .

Proces, którego potrzebujesz, nie jest widoczny w oknie dialogowym Dołączanie do procesu

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

  • Jeśli filtr procesu wyszukiwania został wcześniej ustawiony, sprawdź, czy musisz 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ń można wyłączyć funkcję Odświeżanie automatyczne.
  • Jeśli zostaną zmienione z wartości domyślnych, pola Typ połączenia i Dołącz do mogą ograniczyć procesy wyświetlane na liście.

Nie dołączasz do właściwego procesu

Jeśli używasz dołączania do procesu, upewnij się, że dołączasz do właściwego 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).

Mogą być wymagane podwyższone uprawnienia dla debugera zdalnego

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