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.
Uruchom lokalny klaster deweloperów, wykonując kroki opisane w temacie Konfigurowanie środowiska programistycznego usługi Service Fabric.
Naciśnij F5 lub kliknij pozycję Debuguj>rozpocznij debugowanie.
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.
Okno Zdarzenia diagnostyczne zostanie automatycznie otwarte, aby można było wyświetlać zdarzenia diagnostyczne w czasie rzeczywistym.
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.
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.
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());
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ść.
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.
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.
Uwaga
Ta funkcja wymaga zestawu Service Fabric SDK 2.0 i zestawu Azure SDK dla platformy .NET 2.9.
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.
Przejdź do klastra w eksploratorze chmury. Kliknij prawym przyciskiem myszy i wybierz pozycję Włącz debugowanie
Ta akcja spowoduje rozpoczęcie procesu włączania rozszerzenia zdalnego debugowania w węzłach klastra i wymaganych konfiguracji sieci.
Kliknij prawym przyciskiem myszy węzeł klastra w Eksploratorze chmury, a następnie wybierz pozycję Dołącz debuger
W oknie dialogowym Dołączanie do procesu wybierz proces, który chcesz debugować, a następnie kliknij przycisk Dołącz.
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.
Uwaga
Obecnie nie obsługujemy debugowania klastra usługi Service Fabric z wieloma wystąpieniami tej samej nazwy pliku wykonywalnego usługi.
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
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.
Przejdź do klastra w eksploratorze chmury. Kliknij prawym przyciskiem myszy i wybierz pozycję Włącz śledzenie 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.
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
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.
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