Udostępnij za pośrednictwem


Debugowanie aplikacji ASP.NET na żywo na maszynach wirtualnych platformy Azure i zestawach skalowania maszyn wirtualnych platformy Azure przy użyciu debugera snapshot

Narzędzie Snapshot Debugger tworzy migawkę aplikacji w środowisku produkcyjnym, gdy kod, który cię interesuje. Aby poinstruować debugera o utworzeniu migawki, należy ustawić punkty przyciągania i punkty dziennika w kodzie. Debuger pozwala zobaczyć dokładnie, co poszło nie tak, bez wpływu na ruch aplikacji produkcyjnej. Debuger migawek może pomóc znacznie skrócić czas rozwiązywania problemów występujących w środowiskach produkcyjnych.

Punkty przyciągania i punkty rejestrowania są podobne do punktów przerwania, ale w przeciwieństwie do punktów przerwania punkty przyciągania nie zatrzymują działania aplikacji. Zazwyczaj przechwytywanie migawki w punkcie przyciągania trwa od 10 do 20 milisekund.

Ten samouczek obejmuje następujące kroki:

  • Uruchamianie debugera migawek
  • Ustawianie punktu przyciągania i wyświetlanie migawki
  • Ustawianie punktu dziennika

Wymagania wstępne

  • Debuger migawek dla maszyn wirtualnych platformy Azure i zestawów skalowania maszyn wirtualnych platformy Azure jest dostępny tylko dla programu Visual Studio 2019 Enterprise lub nowszego z pakietem roboczym Programowanie na platformie Azure. (Pod Poszczególne składniki znajdują się na karcie Debugowanie i testowanie>debugera migawek.

    Jeśli nie jest jeszcze zainstalowany, zainstaluj program Visual Studio 2019 Enterprise.

  • Kolekcja migawek jest dostępna dla następujących aplikacji internetowych usługi Azure Virtual Machines\Virtual Machine Scale Sets:

    • ASP.NET aplikacji działających na platformie .NET Framework 4.6.1 lub nowszej.
    • ASP.NET Core aplikacji działających na platformie .NET Core 2.0 lub nowszej w systemie Windows.

    Uwaga

    Program Visual Studio Enterprise uruchomiony w 32-bitowym systemie Windows nie będzie mógł wyświetlać migawek.

Otwórz projekt i uruchom narzędzie Snapshot Debugger

  1. Otwórz projekt, który chcesz debugować migawki.

    Ważne

    Aby przeprowadzić debugowanie migawki, musisz otworzyć tę samą wersję kodu źródłowego, która jest opublikowana w usłudze Azure Virtual Machine\Virtual Machine Scale Set.

  2. Wybierz pozycję Debuguj debugowanie debugera > migawek.... Wybierz zestaw skalowania maszyny wirtualnej platformy Azure\Zestaw skalowania maszyny wirtualnej, na który jest wdrażana aplikacja internetowa, i na koncie usługi Azure Storage, a następnie kliknij przycisk Dołącz. Narzędzie Snapshot Debugger obsługuje również usługę Azure Kubernetes Service i usługę aplikacja systemu Azure Service.

    Launch the snapshot debugger from the Debug menu

    Select Azure Resource

    Ważne

    Po pierwszym wybraniu pozycji Dołącz debuger migawek dla maszyny wirtualnej usługi IIS zostanie automatycznie uruchomiony ponownie. Przy pierwszym wybraniu pozycji Dołącz debuger migawek dla zestawów skalowania maszyn wirtualnych wymaga ręcznego uaktualnienia każdego wystąpienia zestawów skalowania maszyn wirtualnych.

    Uwaga

    (Program Visual Studio 2019 w wersji 16.2 lub nowszej) Narzędzie Snapshot Debugger włączyło obsługę chmury platformy Azure. Upewnij się, że zarówno zasób platformy Azure, jak i wybrane konto usługi Azure Storage pochodzą z tej samej chmury. Jeśli masz pytania dotyczące konfiguracji zgodności platformy Azure przedsiębiorstwa, skontaktuj się z administratorem platformy Azure.

    Metadane modułów nie zostaną początkowo aktywowane, przejdź do aplikacji internetowej, a przycisk Rozpocznij kolekcję stanie się aktywny. Program Visual Studio jest teraz w trybie debugowania migawek.

    Snapshot debugging mode

    Uwaga

    W przypadku usługi VMSS użytkownik musi ręcznie uaktualnić wystąpienia w zestawach skalowania maszyn wirtualnych po dołączeniu debugera migawek po raz pierwszy.

    Okno Moduły pokazuje, kiedy wszystkie moduły zostały załadowane dla zestawu skalowania maszyny wirtualnej platformy Azure\maszyny wirtualnej (wybierz pozycję Debuguj > moduły systemu Windows>, aby otworzyć to okno).

    Check the Modules window

Ustawianie punktu przyciągania

  1. W edytorze kodu kliknij lewą rynnę obok wiersza kodu, który cię interesuje, aby ustawić punkt przyciągania. Upewnij się, że jest to kod, który zostanie wykonany.

    Set a snappoint

  2. Kliknij przycisk Start Collection (Rozpocznij kolekcję), aby włączyć punkt przyciągania.

    Turn on the snappoint

    Napiwek

    Nie można wykonać kroku podczas wyświetlania migawki, ale możesz umieścić wiele punktów przyciągania w kodzie w celu wykonywania w różnych wierszach kodu. Jeśli w kodzie istnieje wiele punktów przyciągania, narzędzie Snapshot Debugger zapewnia, że odpowiednie migawki pochodzą z tej samej sesji użytkownika końcowego. Debuger migawek robi to nawet wtedy, gdy aplikacja osiąga wiele użytkowników.

Tworzenie migawki

Po ustawieniu punktu przyciągania można ręcznie wygenerować migawkę, przechodząc do widoku przeglądarki witryny internetowej i uruchamiając wiersz kodu oznaczonego lub czekając na wygenerowanie go przez użytkowników na podstawie użycia witryny.

Inspekcja danych migawek

  1. Gdy punkt przyciągania zostanie trafiony, w oknie Narzędzia diagnostyczne zostanie wyświetlona migawka. Aby otworzyć to okno, wybierz pozycję Debuguj > narzędzia diagnostyczne Pokaż system Windows>.

    Open a snappoint

  2. Kliknij dwukrotnie punkt przyciągania, aby otworzyć migawkę w edytorze kodu.

    Inspect snapshot data

    W tym widoku możesz umieścić kursor na zmiennych, aby wyświetlić dane Wskazówki, użyć okien Ustawień lokalnych, Zegarków i stosu wywołań, a także ocenić wyrażenia.

    Sama witryna internetowa jest nadal aktywna, a użytkownicy końcowi nie mają wpływu. Domyślnie przechwycono tylko jedną migawkę na punkt przyciągania: po przechwyceniu migawki punkt przyciągania zostanie wyłączony. Jeśli chcesz przechwycić inną migawkę w punkcie przyciągania, możesz ponownie włączyć punkt przyciągania, klikając pozycję Aktualizuj kolekcję.

Możesz również dodać więcej punktów przyciągania do aplikacji i włączyć je za pomocą przycisku Aktualizuj kolekcję .

Potrzebujesz pomocy? Zobacz Rozwiązywanie problemów i znane problemy oraz często zadawane pytania na temat stron debugowania migawek.

Ustawianie warunkowego punktu przyciągania

Jeśli trudno jest odtworzyć określony stan w aplikacji, rozważ użycie warunkowego punktu przyciągania. Warunkowe punkty przyciągania ułatwiają kontrolowanie, kiedy należy wykonać migawkę, na przykład gdy zmienna zawiera określoną wartość, którą chcesz sprawdzić. Warunki można ustawić przy użyciu wyrażeń, filtrów lub liczby trafień.

Aby utworzyć warunkowy punkt przyciągania

  1. Kliknij prawym przyciskiem myszy ikonę punktu przyciągania (pusta sfera) i wybierz Ustawienia.

    Choose Settings

  2. W oknie ustawień punktu przyciągania wpisz wyrażenie.

    Type an expression

    Na poprzedniej ilustracji migawka jest wykonywana tylko dla punktu przyciągania, gdy visitor.FirstName == "Dan".

Ustawianie punktu dziennika

Oprócz tworzenia migawki po trafieniu punktu przyciągania można również skonfigurować punkt przyciągania w celu rejestrowania komunikatu (czyli tworzenia punktu dziennika). Punkty dziennika można ustawić bez konieczności ponownego wdrażania aplikacji. Punkty dziennika są wykonywane praktycznie i nie powodują wpływu na uruchomioną aplikację ani skutków ubocznych.

Aby utworzyć punkt dziennika

  1. Kliknij prawym przyciskiem myszy ikonę punktu przyciągania (niebieski sześciokąt), a następnie wybierz pozycję Ustawienia.

  2. W oknie ustawień punktu przyciągania wybierz pozycję Akcje.

    Create a logpoint

  3. W polu Komunikat możesz wprowadzić nowy komunikat dziennika, który chcesz zarejestrować. Zmienne można również ocenić w komunikacie dziennika, umieszczając je wewnątrz nawiasów klamrowych.

    Jeśli wybierzesz pozycję Wyślij do okna danych wyjściowych, po naciśnięciu punktu dziennika w oknie Narzędzia diagnostyczne zostanie wyświetlony komunikat.

    Logpoint data in the Diagnostic Tools window

    Jeśli wybierzesz pozycję Wyślij do dziennika aplikacji, gdy punkt dziennika zostanie trafiony, komunikat pojawi się w dowolnym miejscu, z System.Diagnostics.Trace którego będą widoczne komunikaty (lub ILogger na platformie .NET Core), takie jak app Szczegółowe informacje.

W tym samouczku przedstawiono sposób używania debugera migawek dla maszyn wirtualnych platformy Azure i zestawów skalowania maszyn wirtualnych platformy Azure. Możesz przeczytać więcej szczegółów na temat tej funkcji.