Udostępnij za pośrednictwem


Debug your Service Fabric application by using Visual Studio (Debugowanie aplikacji usługi Service Fabric przy użyciu programu Visual Studio)

Debugowanie lokalnej aplikacji usługi Service Fabric

Ważne

Debugowanie zdalne nie jest obsługiwane w programie VS 2022

Możesz zaoszczędzić czas i pieniądze, wdrażając i debugując aplikację usługi Azure Service Fabric w lokalnym klastrze deweloperów komputerów. Program Visual Studio 2019 lub 2015 może wdrożyć aplikację w klastrze lokalnym i automatycznie połączyć debuger ze wszystkimi wystąpieniami aplikacji. Aby połączyć debuger, należy uruchomić program Visual Studio jako administrator.

  1. Uruchom lokalny klaster deweloperów, wykonując kroki opisane w temacie Konfigurowanie środowiska programistycznego usługi Service Fabric.

  2. Naciśnij F5 lub kliknij pozycję Debuguj>rozpocznij debugowanie.

    Zrzut ekranu przedstawiający menu Debugowanie.

  3. Ustaw punkty przerwania w kodzie i przejdź przez aplikację, klikając polecenia w menu Debugowanie .

    Uwaga

    Program Visual Studio dołącza do wszystkich wystąpień aplikacji. Podczas przechodzenia przez kod punkty przerwania mogą zostać trafione przez wiele procesów, co powoduje równoczesne sesje. Spróbuj wyłączyć punkty przerwania po ich trafieniu, tworząc każdy punkt przerwania warunkowy na identyfikator wątku lub przy użyciu zdarzeń diagnostycznych.

  4. Okno Zdarzenia diagnostyczne zostanie automatycznie otwarte, aby można było wyświetlać zdarzenia diagnostyczne w czasie rzeczywistym.

    Wyświetlanie zdarzeń diagnostycznych w czasie rzeczywistym

  5. Możesz również otworzyć okno Zdarzenia diagnostyczne w eksploratorze chmury. W obszarze Service Fabric kliknij prawym przyciskiem myszy dowolny węzeł i wybierz polecenie Wyświetl ślady przesyłania strumieniowego.

    Otwieranie okna zdarzeń diagnostycznych

    Jeśli chcesz filtrować ślady do określonej usługi lub aplikacji, włącz śledzenie przesyłania strumieniowego dla tej konkretnej usługi lub aplikacji.

  6. Zdarzenia diagnostyczne można zobaczyć w automatycznie wygenerowanych plikach ServiceEventSource.cs i są wywoływane z kodu aplikacji.

    ServiceEventSource.Current.ServiceMessage(this, "My ServiceMessage with a parameter {0}", result.Value.ToString());
    
  7. Okno Zdarzenia diagnostyczne obsługuje filtrowanie, wstrzymanie i inspekcję zdarzeń w czasie rzeczywistym. Filtr to proste wyszukiwanie ciągu komunikatu o zdarzeniu, w tym jego zawartość.

    Filtrowanie, wstrzymywanie i wznawianie lub sprawdzanie zdarzeń w czasie rzeczywistym

  8. Debugowanie usług przypomina debugowanie dowolnej innej aplikacji. Punkty przerwania są zwykle ustawiane za pomocą programu Visual Studio w celu łatwego debugowania. Mimo że kolekcje Reliable Collection są replikowane w wielu węzłach, nadal implementują funkcję IEnumerable. Ta implementacja oznacza, że możesz użyć widoku wyników w programie Visual Studio podczas debugowania, aby zobaczyć, co jest przechowywane wewnątrz. W tym celu ustaw punkt przerwania w dowolnym miejscu w kodzie.

    Rozpoczynanie debugowania aplikacji

Uruchamianie skryptu w ramach debugowania

W niektórych scenariuszach może być konieczne uruchomienie skryptu w ramach uruchamiania sesji debugowania (np. w przypadku braku korzystania z usług domyślnych).

W programie Visual Studio można dodać plik o nazwie Start-Service.ps1 w folderze Scripts projektu aplikacji usługi Service Fabric (.sfproj). Ten skrypt zostanie wywołany po utworzeniu aplikacji w klastrze lokalnym.

Debugowanie zdalnej aplikacji usługi Service Fabric

Jeśli aplikacje usługi Service Fabric są uruchomione w klastrze usługi Service Fabric na platformie Azure, możesz zdalnie debugować te aplikacje bezpośrednio z poziomu programu Visual Studio.

Ostrzeżenie

Debugowanie zdalne jest przeznaczone dla scenariuszy tworzenia i testowania, a nie do użycia w środowiskach produkcyjnych ze względu na wpływ na uruchomione aplikacje.

  1. Przejdź do klastra w eksploratorze chmury. Kliknij prawym przyciskiem myszy i wybierz pozycję Włącz debugowanie

    Włączanie zdalnego debugowania

    Ta akcja spowoduje rozpoczęcie procesu włączania rozszerzenia zdalnego debugowania w węzłach klastra i wymaganych konfiguracji sieci.

  2. Kliknij prawym przyciskiem myszy węzeł klastra w Eksploratorze chmury, a następnie wybierz pozycję Dołącz debuger

    Dołączanie debugera

  3. W oknie dialogowym Dołączanie do procesu wybierz proces, który chcesz debugować, a następnie kliknij przycisk Dołącz.

    Wybieranie procesu

    Nazwa procesu, do którego chcesz dołączyć, jest równa nazwie zestawu projektu usługi.

    Debuger dołączy do wszystkich węzłów, w których jest uruchamiany proces.

    • W przypadku debugowania usługi bezstanowej wszystkie wystąpienia usługi na wszystkich węzłach są częścią sesji debugowania.

    • Jeśli debugujesz usługę stanową, tylko podstawowa replika dowolnej partycji będzie aktywna i w związku z tym przechwycona przez debuger. Jeśli replika podstawowa zostanie przeniesiona podczas sesji debugowania, przetwarzanie tej repliki będzie nadal częścią sesji debugowania.

    • Aby przechwycić tylko odpowiednie partycje lub wystąpienia danej usługi, można użyć warunkowych punktów przerwania, aby przerwać tylko określoną partycję lub wystąpienie.

      Warunkowy punkt przerwania

      Uwaga

      Obecnie nie obsługujemy debugowania klastra usługi Service Fabric z wieloma wystąpieniami tej samej nazwy pliku wykonywalnego usługi.

  4. Po zakończeniu debugowania aplikacji możesz wyłączyć rozszerzenie debugowania zdalnego, klikając prawym przyciskiem myszy klaster w Eksploratorze chmury i wybierając polecenie Wyłącz debugowanie

    Wyłączanie zdalnego debugowania

Przesyłanie strumieniowe śladów z węzła klastra zdalnego

Możesz również przesyłać strumieniowo ślady bezpośrednio z węzła klastra zdalnego do programu Visual Studio. Ta funkcja umożliwia przesyłanie strumieniowe zdarzeń śledzenia ETW generowanych w węźle klastra usługi Service Fabric.

Uwaga

Ta funkcja wymaga zestawu Service Fabric SDK 2.0 i zestawu Azure SDK dla platformy .NET 2.9. Ta funkcja obsługuje tylko klastry działające na platformie Azure.

Ostrzeżenie

Śledzenie przesyłania strumieniowego jest przeznaczone dla scenariuszy tworzenia i testowania, a nie do użycia w środowiskach produkcyjnych ze względu na wpływ na uruchomione aplikacje. W scenariuszu produkcyjnym należy polegać na przekierowywaniu zdarzeń przy użyciu Diagnostyka Azure.

  1. Przejdź do klastra w eksploratorze chmury. Kliknij prawym przyciskiem myszy i wybierz pozycję Włącz śledzenie przesyłania strumieniowego

    Włączanie zdalnych śladów przesyłania strumieniowego

    Ta akcja spowoduje rozpoczęcie procesu włączania rozszerzenia śledzenia przesyłania strumieniowego w węzłach klastra, a także wymaganych konfiguracji sieci.

  2. Rozwiń element Węzły w Eksploratorze chmury, kliknij prawym przyciskiem myszy węzeł, z którego chcesz przesyłać strumieniowo ślady, a następnie wybierz polecenie Wyświetl ślady przesyłania strumieniowego

    Wyświetlanie zdalnych śladów przesyłania strumieniowego

    Powtórz krok 2 dla tylu węzłów, z których chcesz wyświetlić ślady. Każdy strumień węzłów zostanie wyświetlony w dedykowanym oknie.

    Teraz możesz zobaczyć ślady emitowane przez usługę Service Fabric i usługi. Jeśli chcesz filtrować zdarzenia, aby wyświetlić tylko określoną aplikację, po prostu wpisz nazwę aplikacji w filtrze.

    Wyświetlanie śladów przesyłania strumieniowego

  3. Po zakończeniu przesyłania strumieniowego śladów z klastra możesz wyłączyć zdalne śledzenie przesyłania strumieniowego, klikając prawym przyciskiem myszy klaster w eksploratorze chmury i wybierając pozycję Wyłącz ślady przesyłania strumieniowego

    Wyłączanie zdalnych śladów przesyłania strumieniowego

Następne kroki