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 klawisz F5 lub kliknij przycisk Debugujrozpocznij 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 współbieżne sesje. Spróbuj wyłączyć punkty przerwania po ich trafieniu, co spowoduje, że każdy punkt przerwania jest warunkowy dla identyfikatora 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 pozycję 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 wygenerowany plik 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ągów komunikatu zdarzenia, w tym jego zawartość.

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

  8. Usługi debugowania są podobne do debugowania każdej innej aplikacji. Punkty przerwania są zwykle ustawiane za pośrednictwem programu Visual Studio w celu łatwego debugowania. Mimo że kolekcje Reliable Collections są replikowane w wielu węzłach, nadal implementują funkcję IEnumerable. Ta implementacja oznacza, że podczas debugowania można użyć widoku wyników w programie Visual Studio, aby zobaczyć, co zostało 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 rozpoczynania 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 działają w klastrze usługi Service Fabric na platformie Azure, możesz zdalnie debugować te aplikacje bezpośrednio z poziomu programu Visual Studio.

Ostrzeżenie

Zdalne debugowanie 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 polecenie 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 uruchomionych 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 przechwytywać 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 pozycję Wyłącz debugowanie

    Wyłączanie debugowania zdalnego

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

Możesz również przesyłać strumieniowo ślady bezpośrednio z zdalnego węzła klastra 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

Ślady przesyłania strumieniowego są 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 przekazywaniu zdarzeń przy użyciu Diagnostyka Azure.

  1. Przejdź do klastra w eksploratorze chmury. Kliknij prawym przyciskiem myszy i wybierz pozycję Włącz ślady 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 pozycję 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 zobaczyć ślady. Każdy strumień węzłów będzie wyświetlany 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 śledzenia przesyłania strumieniowego zdalnego

Następne kroki