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
- Program Visual Studio (zobacz [Pliki do pobrania programu Visual Studio] (https://visualstudio.microsoft.com/downloads/?cid=learn-onpage-download-cta)) z zainstalowanym pakietem roboczym Programowanie na platformie Azure oraz zainstalowanym projektem i szablonami elementów programu .NET Framework dla poszczególnych składników. Zobacz Modyfikowanie programu Visual Studio.
- Konto Azure. Jeśli nie masz konta platformy Azure, aktywuj korzyści platformy Azure dla subskrybentów programu Visual Studio lub zarejestruj się w celu uzyskania bezpłatnej wersji próbnej.
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
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.
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.
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)
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>
Otwórz menu skrótów dla projektu platformy Azure, a następnie wybierz pozycję Publikuj.
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.
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.
Przejdź do następnego ekranu, przejrzyj ustawienia, a gdy wszystko będzie gotowe, kliknij pozycję Publikuj i poczekaj na zakończenie wdrożenia.
Zaloguj się do witryny Azure Portal i przejdź do usługi w chmurze (rozszerzona pomoc techniczna), którą chcesz debugować.
Wybierz pozycję Role i wystąpienia w okienku po lewej stronie, a następnie wybierz rolę, którą chcesz zdalnie debugować.
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.
Na zdalnej maszynie wirtualnej platformy Azure zainstaluj narzędzia zdalne programu Visual Studio 2019 zgodnie z opisem w temacie Debugowanie zdalne.
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.
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ń.
W witrynie Azure Portal otwórz grupę zasobów i uzyskaj publiczny adres IP dla usługi w chmurze (rozszerzona pomoc techniczna).
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".
Wybierz pozycję Debuguj>dołączanie do procesu (lub naciśnij Ctrl+Alt+P).
Zachowaj typ połączenia na wartość Domyślna.
Wprowadź element docelowy połączenia przy użyciu adresu IP i portu:
{ipaddress}:4024
.Ustaw opcję Dołącz do na wartość Automatyczna.
Zaloguj się przy użyciu tych samych poświadczeń co użytkownik pulpitu zdalnego.
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.
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)
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>
Jeśli używasz platformy .NET 4.8, otwórz plik ServiceConfiguration.Cloud.cscfg i sprawdź wartość atrybutu
osFamily
w elememencieServiceConfiguration
podczas publikowania usług Cloud Services (rozszerzona obsługa). W przypadku projektu .NET 4.8 użyj poleceniaosFamily="7"
.Otwórz menu skrótów dla projektu platformy Azure, a następnie wybierz pozycję Publikuj.
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.
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.
Przejdź do następnego ekranu, przejrzyj ustawienia, a gdy wszystko będzie gotowe, kliknij pozycję Publikuj i poczekaj na zakończenie wdrożenia.
Zaloguj się do witryny Azure Portal i przejdź do usługi w chmurze (rozszerzona pomoc techniczna), którą chcesz debugować.
Wybierz pozycję Role i wystąpienia w okienku po lewej stronie, a następnie wybierz rolę, którą chcesz zdalnie debugować.
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.
Na zdalnej maszynie wirtualnej platformy Azure zainstaluj narzędzia zdalne programu Visual Studio 2022 zgodnie z opisem w temacie Debugowanie zdalne.
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.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ń.
W witrynie Azure Portal otwórz grupę zasobów i uzyskaj publiczny adres IP dla usługi w chmurze (rozszerzona pomoc techniczna).
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".
Wybierz pozycję Debuguj>dołączanie do procesu (lub naciśnij Ctrl+Alt+P).
Zachowaj typ połączenia na wartość Domyślna.
Wprowadź element docelowy połączenia przy użyciu adresu IP i portu:
{ipaddress}:4026
.Ustaw opcję Dołącz do na wartość Automatyczna.
Zaloguj się przy użyciu tych samych poświadczeń co użytkownik pulpitu zdalnego.
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.
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.
- Błąd podczas sprawdzania poprawności pliku cscfg względem pliku csdef.
Zakres zarezerwowanych portów "zakres" dla punktu końcowego
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
W obszarze Debugowanie wybierz pozycję Dołącz do procesu.
Zmień typ połączenia na Microsoft aplikacja systemu Azure Services, a następnie wybierz pozycję Find...
W wyświetlonym oknie dialogowym wybierz nazwę subskrypcji.
Uwaga
Musisz zalogować się do konta Microsoft z dostępem do subskrypcji zawierającej usługę aplikacja systemu Azure.
Filtruj widok według grupy zasobów lub typu zasobu albo wyszukaj według nazwy.
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.
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
W Eksploratorze serwera rozwiń węzeł Maszyny wirtualne i wybierz węzeł maszyny wirtualnej, który chcesz debugować.
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.
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 .
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.
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
W programie Visual Studio utwórz nową aplikację internetową ASP.NET.
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 .
Uwaga
Jeśli jeszcze nie zalogowano się, zostanie wyświetlony monit o zalogowanie się do konta platformy Azure.
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.
Platforma Azure tworzy maszynę wirtualną, a następnie aprowizuje i konfiguruje punkty końcowe, takie jak Pulpit zdalny i Web Deploy.
Po pełnym skonfigurowaniu maszyny wirtualnej wybierz węzeł maszyny wirtualnej w Eksploratorze serwera.
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.
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.
W obszarze Opcje publikowania plików wybierz pozycję Usuń dodatkowe pliki w miejscu docelowym , jeśli projekt został już wdrożony wcześniej.
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 .
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.
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 .
Powiązana zawartość
Użyj Diagnostyka Azure, aby rejestrować szczegółowe informacje z kodu działającego w ramach ról na platformie Azure. Zobacz Zbieranie danych rejestrowania przy użyciu Diagnostyka Azure.
Aby zapoznać się z innymi scenariuszami zdalnego debugowania, zobacz Debugowanie zdalne.