Udostępnij za pośrednictwem


Debugowanie usługi Azure Cloud Services (wsparcie dodatkowe) w programie Visual Studio

Program Visual Studio oferuje różne opcje debugowania usług Azure Cloud Services (rozszerzona obsługa) i maszyn wirtualnych.

Wymagania wstępne

Debugowanie usługi w chmurze na komputerze lokalnym

Możesz zaoszczędzić czas i pieniądze przy użyciu emulatora usługi Azure Compute w celu debugowania usługi w chmurze na komputerze lokalnym. Debugując usługę lokalnie przed jej wdrożeniem, można zwiększyć niezawodność i wydajność bez płacenia za czas obliczeniowy. Jednak niektóre błędy mogą wystąpić tylko wtedy, gdy uruchamiasz usługę w chmurze na platformie Azure. Te błędy można debugować, jeśli włączysz debugowanie zdalne podczas publikowania usługi, a następnie dołącz debuger do wystąpienia roli.

Emulator symuluje usługę Azure Compute i działa w środowisku lokalnym, aby można było przetestować i debugować usługę w chmurze przed jej wdrożeniem. Emulator obsługuje cykl życia wystąpień ról i zapewnia dostęp do symulowanych zasobów, takich jak magazyn lokalny. Podczas debugowania lub uruchamiania usługi z poziomu programu Visual Studio automatycznie uruchamia emulator jako aplikację w tle, a następnie wdraża usługę w emulatorze. Możesz użyć emulatora, aby wyświetlić usługę podczas jej uruchamiania w środowisku lokalnym. Możesz uruchomić pełną wersję lub wersję ekspresową emulatora. Zobacz Używanie emulatora Express do uruchamiania i debugowania usługi w chmurze lokalnie.

Aby debugować usługę w chmurze na komputerze lokalnym

  1. Na pasku menu wybierz pozycję Debuguj>rozpocznij debugowanie, aby uruchomić projekt usług Azure Cloud Services (rozszerzona pomoc techniczna). Alternatywnie można nacisnąć F5. Zostanie wyświetlony komunikat informujący o uruchomieniu emulatora obliczeń. Po uruchomieniu emulatora ikona paska zadań systemu potwierdza to.

    Emulator platformy Azure w zasobniku systemu

  2. Wyświetl interfejs użytkownika emulatora obliczeniowego, otwierając menu skrótów dla ikony platformy Azure w obszarze powiadomień, a następnie wybierz pozycję Pokaż interfejs użytkownika emulatora obliczeniowego.

    W lewym okienku interfejsu użytkownika są wyświetlane usługi, które są obecnie wdrażane w emulatorze obliczeniowym i wystąpieniach ról, które są uruchomione dla każdej usługi. Możesz wybrać usługę lub role do wyświetlania cyklu życia, rejestrowania i informacji diagnostycznych w okienku po prawej stronie. Jeśli fokus zostanie umieszczony na górnym marginesie dołączonego okna, zostanie on rozbudowany, aby wypełnić okienko po prawej stronie.

  3. Przejrzyj aplikację, wybierając polecenia w menu Debugowanie i ustawiając punkty przerwania w kodzie. Podczas przechodzenia przez aplikację w debugerze okienka są aktualizowane przy użyciu bieżącego stanu aplikacji. Po zatrzymaniu debugowania wdrożenie aplikacji zostanie usunięte. Jeśli aplikacja zawiera rolę internetową i ustawiono właściwość Akcja uruchamiania, aby uruchomić przeglądarkę internetową, program Visual Studio uruchamia aplikację internetową w przeglądarce. Jeśli zmienisz liczbę wystąpień roli w konfiguracji usługi, musisz zatrzymać usługę w chmurze, a następnie ponownie uruchomić debugowanie, aby można było debugować te nowe wystąpienia roli.

    Uwaga

    Po zatrzymaniu działania lub debugowaniu usługi lokalny emulator obliczeniowy i emulator magazynu nie są zatrzymywane. Należy je jawnie zatrzymać w obszarze powiadomień.

Debugowanie usługi w chmurze na platformie Azure

Jeśli włączysz zdalne debugowanie dla usługi w chmurze przy użyciu procedury opisanej w tej sekcji, nie będzie to miało obniżonej wydajności ani nie spowoduje naliczania dodatkowych opłat. Nie używaj zdalnego debugowania w usłudze produkcyjnej, ponieważ klienci korzystający z usługi mogą mieć negatywny wpływ.

Aby włączyć zdalne debugowanie dla usługi w chmurze (rozszerzona obsługa)

  1. Dodaj punkt końcowy do pliku ServiceDefinition.csdef dla domyślnego portu msvsmon. W przypadku programu Visual Studio 2019 jest to wersja 4024.

    <Endpoints>
       <InputEndpoint name="RemoteDebug" protocol="tcp" port="4024" localPort="4024" />
    </Endpoints>
    

    Uwaga

    Inne wersje programu Visual Studio mają różne porty Przypisania portów zdalnego debugera.

  2. Otwórz menu skrótów dla projektu platformy Azure, a następnie wybierz pozycję Publikuj.

  3. Wybierz środowisko przejściowe i konfigurację debugowania.

    Jest to tylko wytyczne. Możesz zdecydować się na uruchamianie środowisk testowych w środowisku produkcyjnym. Jednak w przypadku włączenia zdalnego debugowania w środowisku produkcyjnym może mieć negatywny wpływ na użytkowników. Możesz wybrać konfigurację wydania, ale konfiguracja debugowania ułatwia debugowanie.

    Wybierz konfigurację debugowania.

  4. Wykonaj typowe kroki opisane w temacie Cloud Services (rozszerzona obsługa), ale zaznacz pole wyboru Włącz pulpit zdalny dla wszystkich ról .

    Zostanie wyświetlony monit o utworzenie nazwy użytkownika pulpitu zdalnego i hasła, które będzie potrzebne później do zalogowania się do tej maszyny wirtualnej.

  5. Przejdź do następnego ekranu, przejrzyj ustawienia, a gdy wszystko będzie gotowe, kliknij pozycję Publikuj i poczekaj na zakończenie wdrożenia.

  6. Zaloguj się do witryny Azure Portal i przejdź do usługi w chmurze (rozszerzona pomoc techniczna), którą chcesz debugować.

  7. Wybierz pozycję Role i wystąpienia w okienku po lewej stronie, a następnie wybierz rolę, którą chcesz zdalnie debugować.

  8. Kliknij przycisk Połącz w oknie podręcznym Wystąpienie roli po prawej stronie i wybierz przycisk Połącz , aby pobrać plik pulpitu zdalnego, który umożliwi zalogowanie się do maszyny wirtualnej. Zaloguj się przy użyciu poświadczeń utworzonych podczas włączania pulpitu zdalnego w poprzednim kroku.

    Zrzut ekranu przedstawiający wyskakujące okienko wystąpienia roli z opcją Połącz.

  9. Na zdalnej maszynie wirtualnej platformy Azure zainstaluj narzędzia zdalne programu Visual Studio 2019 zgodnie z opisem w temacie Debugowanie zdalne.

  10. Na pulpicie na maszynie wirtualnej wykonaj polecenie D:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\Remote Debugger\x64\msvsmon.exe. Pamiętaj, aby uruchomić polecenie jako administrator.

  11. Zaakceptuj monity o zezwolenie na dostęp za pośrednictwem zapory. Powinien zostać wyświetlony komunikat informujący, że msvsmon.exe zaczęła nasłuchiwać połączeń.

  12. W witrynie Azure Portal otwórz grupę zasobów i uzyskaj publiczny adres IP dla usługi w chmurze (rozszerzona pomoc techniczna).

    Zrzut ekranu przedstawiający miejsce znalezienia publicznego adresu IP dla usługi w chmurze.

Aby dołączyć debuger do usługi w chmurze (wsparcie dodatkowe) na platformie Azure

Uwaga

Jeśli to możliwe, należy debugować przy użyciu konfiguracji debugowania wybranej w procesie publikowania, ale jeśli debugujesz konfigurację wydania, w programie Visual Studio użyj Ctrl+Q, aby wyszukać frazę "Just My Code" i usunąć zaznaczenie pola wyboru Włącz tylko mój kod w obszarze Narzędzia>Opcje>Ogólne debugera.> Kompilacje wydania są zoptymalizowane i w związku z tym nie są traktowane jako "Mój kod".

  1. Wybierz pozycję Debuguj>dołączanie do procesu (lub naciśnij Ctrl+Alt+P).

  2. Zachowaj typ połączenia na wartość Domyślna.

  3. Wprowadź element docelowy połączenia przy użyciu adresu IP i portu: {ipaddress}:4024.

  4. Ustaw opcję Dołącz do na wartość Automatyczna.

  5. Zaloguj się przy użyciu tych samych poświadczeń co użytkownik pulpitu zdalnego.

  6. Wybierz pozycję Pokaż proces dla wszystkich użytkowników. Jeśli debugujesz rolę procesu roboczego, dołącz ją do WaWorkerHost.exe. Jeśli debugujesz rolę internetową, dołącz ją do procesu w3wp.exe; w przypadku roli internetowego interfejsu API WaIISHost.exe.

  7. Ustaw punkty przerwania (przejdź do wiersza i naciśnij F9), uzyskaj dostęp do publicznego adresu URL witryny i odtwórz scenariusz w celu debugowania.

Aby włączyć zdalne debugowanie dla usługi w chmurze (rozszerzona obsługa)

  1. Dodaj punkt końcowy do pliku ServiceDefinition.csdef dla domyślnego portu msvsmon. W przypadku programu Visual Studio 2022 to 4026; Dla programu Visual Studio 2019 jest to wersja 4024.

    <Endpoints>
       <InputEndpoint name="RemoteDebug" protocol="tcp" port="4026" localPort="4026" />
    </Endpoints>
    

    Uwaga

    Inne wersje programu Visual Studio mają różne porty Przypisania portów zdalnego debugera.

  2. Jeśli używasz platformy .NET 4.8, otwórz plik ServiceConfiguration.Cloud.cscfg i sprawdź wartość atrybutu osFamily w elememencie ServiceConfiguration podczas publikowania usług Cloud Services (rozszerzona obsługa). W przypadku projektu .NET 4.8 użyj polecenia osFamily="7".

  3. Otwórz menu skrótów dla projektu platformy Azure, a następnie wybierz pozycję Publikuj.

  4. Wybierz środowisko przejściowe i konfigurację debugowania.

    Jest to tylko wytyczne. Możesz zdecydować się na uruchamianie środowisk testowych w środowisku produkcyjnym. Jednak w przypadku włączenia zdalnego debugowania w środowisku produkcyjnym może mieć negatywny wpływ na użytkowników. Możesz wybrać konfigurację wydania, ale konfiguracja debugowania ułatwia debugowanie.

    Wybieranie konfiguracji debugowania

  5. Wykonaj typowe kroki opisane w temacie Cloud Services (rozszerzona obsługa), ale zaznacz pole wyboru Włącz pulpit zdalny dla wszystkich ról .

    Zostanie wyświetlony monit o utworzenie nazwy użytkownika pulpitu zdalnego i hasła, które będzie potrzebne później do zalogowania się do tej maszyny wirtualnej.

  6. Przejdź do następnego ekranu, przejrzyj ustawienia, a gdy wszystko będzie gotowe, kliknij pozycję Publikuj i poczekaj na zakończenie wdrożenia.

  7. Zaloguj się do witryny Azure Portal i przejdź do usługi w chmurze (rozszerzona pomoc techniczna), którą chcesz debugować.

  8. Wybierz pozycję Role i wystąpienia w okienku po lewej stronie, a następnie wybierz rolę, którą chcesz zdalnie debugować.

  9. Kliknij przycisk Połącz w oknie podręcznym Wystąpienie roli po prawej stronie i wybierz przycisk Połącz , aby pobrać plik pulpitu zdalnego, który umożliwi zalogowanie się do maszyny wirtualnej. Zaloguj się przy użyciu poświadczeń utworzonych podczas włączania pulpitu zdalnego w poprzednim kroku.

    Zrzut ekranu przedstawiający wyskakujące okienko wystąpienia roli z opcją Połącz.

  10. Na zdalnej maszynie wirtualnej platformy Azure zainstaluj narzędzia zdalne programu Visual Studio 2022 zgodnie z opisem w temacie Debugowanie zdalne.

  11. Na pulpicie na maszynie wirtualnej wykonaj polecenie msvsmon.exe w folderze instalacyjnym programu Visual Studio w obszarze Common7\IDE\Remote Debugger\x64. Pamiętaj, aby uruchomić polecenie jako administrator.

  12. Zaakceptuj monity o zezwolenie na dostęp za pośrednictwem zapory. Powinien zostać wyświetlony komunikat informujący, że msvsmon.exe zaczęła nasłuchiwać połączeń.

    Zrzut ekranu przedstawiający nasłuchiwanie połączeń przez msvsmon.exe.

  13. W witrynie Azure Portal otwórz grupę zasobów i uzyskaj publiczny adres IP dla usługi w chmurze (rozszerzona pomoc techniczna).

    Zrzut ekranu przedstawiający miejsce znalezienia publicznego adresu IP dla usługi w chmurze.

Aby dołączyć debuger do usługi w chmurze (wsparcie dodatkowe) na platformie Azure

Uwaga

Jeśli to możliwe, należy debugować przy użyciu konfiguracji debugowania wybranej w procesie publikowania, ale jeśli debugujesz konfigurację wydania, w programie Visual Studio użyj Ctrl+Q, aby wyszukać frazę "Just My Code" i usunąć zaznaczenie pola wyboru Włącz tylko mój kod w obszarze Narzędzia>Opcje>Ogólne debugera.> Kompilacje wydania są zoptymalizowane i w związku z tym nie są traktowane jako "Mój kod".

  1. Wybierz pozycję Debuguj>dołączanie do procesu (lub naciśnij Ctrl+Alt+P).

  2. Zachowaj typ połączenia na wartość Domyślna.

  3. Wprowadź element docelowy połączenia przy użyciu adresu IP i portu: {ipaddress}:4026.

  4. Ustaw opcję Dołącz do na wartość Automatyczna.

  5. Zaloguj się przy użyciu tych samych poświadczeń co użytkownik pulpitu zdalnego.

  6. Wybierz pozycję Pokaż proces dla wszystkich użytkowników. Jeśli debugujesz rolę procesu roboczego, dołącz ją do WaWorkerHost.exe. Jeśli debugujesz rolę internetową, dołącz ją do procesu w3wp.exe; w przypadku roli internetowego interfejsu API WaIISHost.exe.

  7. Ustaw punkty przerwania (przejdź do wiersza i naciśnij F9), uzyskaj dostęp do publicznego adresu URL witryny i odtwórz scenariusz w celu debugowania.

Ograniczenia debugowania zdalnego na platformie Azure

Debugowanie zdalne ma następujące ograniczenia:

  • Po włączeniu zdalnego debugowania nie można opublikować usługi w chmurze, w której każda rola ma więcej niż 25 wystąpień.

  • Debuger używa portów od 30400 do 30424, od 31400 do 31424 i 32400 do 32424. Jeśli spróbujesz użyć dowolnego z tych portów, nie będzie można opublikować usługi, a jeden z następujących komunikatów o błędach pojawi się w dzienniku aktywności platformy Azure:

    • Błąd podczas sprawdzania poprawności pliku cscfg względem pliku csdef. Zakres zarezerwowanych portów "zakres" dla punktu końcowego Microsoft.WindowsAzure.PlugIns.RemoteDebugger.Connector roli "rola" pokrywa się z już zdefiniowanym portem lub zakresem.
    • Alokacja nie powiodła się. Spróbuj ponownie później, spróbuj zmniejszyć rozmiar maszyny wirtualnej lub liczbę wystąpień roli lub spróbować wdrożyć je w innym regionie.

Debugowanie usługi aplikacja systemu Azure

Programy uruchamiane w usłudze aplikacja systemu Azure można debugować przy użyciu okna dialogowego Dołączanie do procesu w programie Visual Studio.

Uwaga

Jest to dostępne tylko dla usługi aplikacja systemu Azure, począwszy od programu Visual Studio 2022 17.1.

Aby debugować usługę aplikacja systemu Azure systemu Windows

  1. W obszarze Debugowanie wybierz pozycję Dołącz do procesu.

  2. Zmień typ połączenia na Microsoft aplikacja systemu Azure Services, a następnie wybierz pozycję Find...

  3. W wyświetlonym oknie dialogowym wybierz nazwę subskrypcji.

    Zrzut ekranu przedstawiający okno dialogowe Wybieranie usługi aplikacja systemu Azure z listą usług aplikacji do wybrania.

    Uwaga

    Musisz zalogować się do konta Microsoft z dostępem do subskrypcji zawierającej usługę aplikacja systemu Azure.

  4. Filtruj widok według grupy zasobów lub typu zasobu albo wyszukaj według nazwy.

  5. Następnie wybierz usługę App Service, którą chcesz debugować, a następnie wybierz przycisk OK.

    Umożliwia to zdalne debugowanie w usłudze App Service i przedstawia listę dostępnych procesów do dołączenia.

    Zrzut ekranu przedstawiający okno Dołączanie do procesu z wyświetlonymi procesami uruchomionymi w wybranej usłudze App Service.

  6. Wybierz proces, do którego chcesz dołączyć, a następnie wybierz pozycję Dołącz , aby rozpocząć debugowanie.

Debugowanie maszyn wirtualnych platformy Azure

Programy uruchamiane na maszynach wirtualnych platformy Azure można debugować przy użyciu Eksploratora serwera w programie Visual Studio. Po włączeniu zdalnego debugowania na maszynie wirtualnej platformy Azure platforma Azure instaluje rozszerzenie debugowania zdalnego na maszynie wirtualnej. Następnie możesz dołączyć do procesów na maszynie wirtualnej i debugować tak, jak zwykle.

Uwaga

Maszyny wirtualne utworzone za pośrednictwem stosu usługi Azure Resource Manager można debugować zdalnie przy użyciu eksploratora chmury w programie Visual Studio 2019. Aby uzyskać więcej informacji, zobacz Zarządzanie zasobami platformy Azure za pomocą eksploratora chmury.

Aby debugować maszynę wirtualną platformy Azure

  1. W Eksploratorze serwera rozwiń węzeł Maszyny wirtualne i wybierz węzeł maszyny wirtualnej, który chcesz debugować.

  2. Otwórz menu kontekstowe i wybierz pozycję Włącz debugowanie. Po wyświetleniu monitu o to, czy chcesz włączyć debugowanie na maszynie wirtualnej, wybierz pozycję Tak.

    Platforma Azure instaluje rozszerzenie zdalnego debugowania na maszynie wirtualnej w celu włączenia debugowania.

    Polecenie włączanie debugowania maszyny wirtualnej

    Dziennik aktywności platformy Azure

  3. Po zakończeniu instalowania rozszerzenia zdalnego debugowania otwórz menu kontekstowe maszyny wirtualnej i wybierz pozycję Dołącz debuger...

    Platforma Azure pobiera listę procesów na maszynie wirtualnej i wyświetla je w oknie dialogowym Dołączanie do procesu .

    Dołączanie polecenia debugera

  4. W oknie dialogowym Dołączanie do procesu wybierz pozycję Wybierz, aby ograniczyć listę wyników, aby wyświetlić tylko typy kodu, które chcesz debugować. Można debugować 32-bitowy lub 64-bitowy kod zarządzany, kod natywny lub oba te elementy.

    Okno dialogowe Wybieranie typu kodu

  5. Wybierz procesy, które chcesz debugować na maszynie wirtualnej, a następnie wybierz pozycję Dołącz. Możesz na przykład wybrać proces w3wp.exe, jeśli chcesz debugować aplikację internetową na maszynie wirtualnej. Aby uzyskać więcej informacji, zobacz Debugowanie co najmniej jednego procesu w programie Visual Studio i architekturze roli platformy Azure.

Tworzenie projektu internetowego i maszyny wirtualnej na potrzeby debugowania

Przed opublikowaniem projektu platformy Azure przydatne może być przetestowanie go w środowisku zawartym, które obsługuje scenariusze debugowania i testowania oraz gdzie można zainstalować programy do testowania i monitorowania. Jednym ze sposobów uruchamiania takich testów jest zdalne debugowanie aplikacji na maszynie wirtualnej.

Program Visual Studio ASP.NET projektów oferuje opcję utworzenia przydatnej maszyny wirtualnej, której można użyć do testowania aplikacji. Maszyna wirtualna zawiera często potrzebne punkty końcowe, takie jak program PowerShell, pulpit zdalny i narzędzie WebDeploy.

Aby utworzyć projekt internetowy i maszynę wirtualną do debugowania

  1. W programie Visual Studio utwórz nową aplikację internetową ASP.NET.

  2. W oknie dialogowym Nowy projekt ASP.NET w sekcji Azure wybierz pozycję Maszyna wirtualna w polu listy rozwijanej. Pozostaw zaznaczone pole wyboru Utwórz zasoby zdalne. Wybierz przycisk OK , aby kontynuować.

    Zostanie wyświetlone okno dialogowe Tworzenie maszyny wirtualnej na platformie Azure .

    Okno dialogowe Tworzenie projektu internetowego ASP.NET

    Uwaga

    Jeśli jeszcze nie zalogowano się, zostanie wyświetlony monit o zalogowanie się do konta platformy Azure.

  3. Wybierz różne ustawienia maszyny wirtualnej, a następnie wybierz przycisk OK. Aby uzyskać więcej informacji, zobacz Maszyny wirtualne.

    Wprowadzona nazwa DNS będzie nazwą maszyny wirtualnej.

    Okno dialogowe Tworzenie maszyny wirtualnej na platformie Azure

    Platforma Azure tworzy maszynę wirtualną, a następnie aprowizuje i konfiguruje punkty końcowe, takie jak Pulpit zdalny i Web Deploy.

  4. Po pełnym skonfigurowaniu maszyny wirtualnej wybierz węzeł maszyny wirtualnej w Eksploratorze serwera.

  5. Otwórz menu kontekstowe i wybierz pozycję Włącz debugowanie. Po wyświetleniu monitu o to, czy chcesz włączyć debugowanie na maszynie wirtualnej, wybierz pozycję Tak.

    Platforma Azure instaluje rozszerzenie zdalnego debugowania na maszynie wirtualnej w celu włączenia debugowania.

    Polecenie włączanie debugowania maszyny wirtualnej

    Dziennik aktywności platformy Azure

  6. Opublikuj projekt zgodnie z opisem w temacie How to: Deploy a Web Project Using One-Click Publish in Visual Studio (Jak wdrożyć projekt internetowy przy użyciu funkcji Publikuj jednym kliknięciem w programie Visual Studio). Ponieważ chcesz debugować na maszynie wirtualnej, na stronie Ustawienia Kreatora publikowania sieci Web wybierz pozycję Debuguj jako konfigurację. Dzięki temu symbole kodu są dostępne podczas debugowania.

    Publish settings (Ustawienia publikowania)

  7. W obszarze Opcje publikowania plików wybierz pozycję Usuń dodatkowe pliki w miejscu docelowym , jeśli projekt został już wdrożony wcześniej.

  8. Po opublikowaniu projektu w menu kontekstowym maszyny wirtualnej w Eksploratorze serwera wybierz pozycję Dołącz debuger...

    Platforma Azure pobiera listę procesów na maszynie wirtualnej i wyświetla je w oknie dialogowym Dołączanie do procesu .

    Dołączanie polecenia debugera

  9. W oknie dialogowym Dołączanie do procesu wybierz pozycję Wybierz, aby ograniczyć listę wyników, aby wyświetlić tylko typy kodu, które chcesz debugować. Można debugować 32-bitowy lub 64-bitowy kod zarządzany, kod natywny lub oba te elementy.

    Okno dialogowe Wybieranie typu kodu

  10. Wybierz procesy, które chcesz debugować na maszynie wirtualnej, a następnie wybierz pozycję Dołącz. Możesz na przykład wybrać proces w3wp.exe, jeśli chcesz debugować aplikację internetową na maszynie wirtualnej. Aby uzyskać więcej informacji, zobacz Debugowanie co najmniej jednego procesu w programie Visual Studio .