Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W przykładzie EtwTracking pokazano, jak włączyć śledzenie programu Windows Workflow Foundation (WF) w usłudze przepływu pracy i generować zdarzenia śledzenia w Śledzeniu zdarzeń dla systemu Windows (ETW). Aby emitować rekordy śledzenia przepływu pracy do ETW, w przykładzie użyto uczestnika śledzenia ETW (EtwTrackingParticipant).
Przepływ pracy w przykładzie odbiera żądanie, przypisuje odwrotność danych wejściowych do zmiennej wejściowej i zwraca tę odwrotność do klienta. Gdy dane wejściowe mają wartość 0, występuje wyjątek dzielenia przez zero, który jest nieobsługiwany, co powoduje przerwanie przepływu pracy. Po włączeniu śledzenia zapis błędu jest emitowany do ETW, co może pomóc w późniejszym rozwiązywaniu błędu. Uczestnik śledzenia ETW jest skonfigurowany z profilem śledzenia w celu subskrybowania rekordów śledzenia. Profil śledzenia jest definiowany w pliku Web.config i udostępniany jako parametr konfiguracji uczestnika śledzenia ETW. Uczestnik śledzenia ETW jest konfigurowany w pliku Web.config usługi przepływu pracy i jest stosowany do usługi jako zachowanie usługi. W tym przykładzie wyświetlisz zdarzenia śledzenia w dzienniku zdarzeń przy użyciu Podglądu zdarzeń.
Szczegóły śledzenia przepływu pracy
Program Windows Workflow Foundation udostępnia infrastrukturę umożliwiającą śledzenie wykonywania wystąpienia przepływu pracy. Środowisko wykonawcze śledzenia tworzy instancję przepływu pracy w celu emitowania zdarzeń związanych z cyklem życia przepływu pracy, zdarzeń działań przepływu pracy oraz zdarzeń niestandardowych. W poniższej tabeli przedstawiono podstawowe składniki infrastruktury śledzenia.
Składnik | Opis |
---|---|
Śledzenie czasu wykonania | Udostępnia infrastrukturę do emitowania rekordów śledzenia. |
Śledzenie uczestników | Uzyskuje dostęp do rekordów śledzenia. Program .NET Framework 4.6.1 jest dostarczany z uczestnikiem śledzenia, który zapisuje rekordy śledzenia jako zdarzenia ETW (śledzenie zdarzeń systemu Windows). |
Profil śledzenia | Mechanizm filtrowania, który umożliwia uczestnikowi procesu śledzenia subskrybowanie określonego zestawu rekordów śledzenia generowanych przez instancję przepływu pracy. |
W poniższej tabeli szczegółowo opisano rekordy śledzenia emitowane przez środowisko uruchomieniowe przepływu pracy.
Rekord śledzenia | Opis |
---|---|
Rekordy śledzenia wystąpień przepływu pracy. | Opisuje cykl życia wystąpienia przepływu pracy. Na przykład rekord wystąpienia jest emitowany po uruchomieniu lub zakończeniu przepływu pracy. |
Rekordy śledzenia stanu aktywności. | Szczegóły wykonania działania. Te rekordy wskazują stan działania przepływu pracy, na przykład gdy działanie jest zaplanowane lub gdy działanie zostanie zakończone lub gdy zostanie zgłoszony błąd. |
Rekord wznowienia zakładki. | Emitowane za każdym razem, gdy zakładka w wystąpieniu przepływu pracy zostanie wznowiona. |
Niestandardowe rekordy śledzenia. | Autor przepływu pracy może tworzyć niestandardowe rekordy śledzenia i emitować je w ramach działania niestandardowego. |
ActivityScheduledRecord | Ten rekord zostaje zapisany, gdy aktywność planuje inną aktywność. |
FaultPropagationRecord | Ten rekord jest emitowany, gdy błąd jest propagowany z aktywności. |
CancelRequestedRecord | Ten rekord jest emitowany, gdy działanie zostanie anulowane przez inne działanie. |
Uczestnik śledzenia subskrybuje następujący podzestaw emitowanych rekordów śledzenia, korzystając z profili śledzenia. Profil śledzenia zawiera zapytania śledzenia, które umożliwiają subskrybowanie określonego typu rekordu śledzenia. Profile śledzenia można określić w kodzie lub w konfiguracji.
Aby skorzystać z tego przykładu
Za pomocą programu Visual Studio otwórz plik rozwiązania EtwTrackingParticipantSample.sln.
Aby skompilować rozwiązanie, naciśnij CTRL+SHIFT+B.
Aby uruchomić rozwiązanie, naciśnij F5.
Domyślnie usługa nasłuchuje na porcie 53797 (
http://localhost:53797/SampleWorkflowService.xamlx
).Za pomocą Eksploratora plików otwórz klienta testowego programu WCF.
Klient testowy programu WCF (WcfTestClient.exe) znajduje się w <folderze> instalacyjnym programu Visual Studio\Common7\IDE\.
Domyślny folder instalacyjny programu Visual Studio to C:\Program Files\Microsoft Visual Studio 10.0.
W kliencie testowym programu WCF wybierz pozycję Dodaj usługę z menu Plik .
Dodaj adres punktu końcowego w polu wejściowym. Wartość domyślna to
http://localhost:53797/SampleWorkflowService.xamlx
.Otwórz aplikację Podgląd zdarzeń.
Przed wywołaniem usługi uruchom Podgląd zdarzeń z menu Start , wybierz pozycję Uruchom i wpisz polecenie
eventvwr.exe
. Upewnij się, że dziennik zdarzeń nasłuchuje w celu śledzenia zdarzeń emitowanych z usługi przepływu pracy.W widoku drzewa Podgląd zdarzeń przejdź do podglądu zdarzeń, dzienników aplikacji i usług oraz firmy Microsoft. Kliknij prawym przyciskiem myszy pozycję Microsoft i wybierz pozycję Widok , a następnie pozycję Pokaż dzienniki analityczne i debugowania , aby włączyć dzienniki analityczne i debugowania
Upewnij się, że opcja Pokaż dzienniki analityczne i debugowania jest zaznaczona.
W widoku drzewa w Podglądzie zdarzeń przejdź do Podgląd zdarzeń, Dzienniki aplikacji i usług, Microsoft, Windows, Application Server-Applications. Kliknij prawym przyciskiem myszy pozycję Analityczne i wybierz pozycję Włącz dziennik , aby włączyć dziennik analityczny .
Przetestuj usługę przy użyciu klienta testowego WCF, dwukrotnie klikając
GetData
.Spowoduje to otwarcie
GetData
metody . Żądanie akceptuje jeden parametr i gwarantuje, że wartość to 0, czyli wartość domyślna.Kliknij pozycję Wywołaj.
Obserwuj zdarzenia emitowane z przepływu pracy.
Wróć do Podglądu Zdarzeń i przejdź do Podgląd Zdarzeń, Dzienniki Aplikacji i Usług, Microsoft, Windows, Application Server-Applications. Kliknij prawym przyciskiem myszy pozycję Analityczne i wybierz polecenie Odśwież.
Zdarzenia przepływu pracy są wyświetlane w podglądzie zdarzeń. Zwróć uwagę, że są wyświetlane zdarzenia wykonywania przepływu pracy i że jednym z nich jest nieobsługiwany wyjątek, który odpowiada błędowi w przepływie pracy. Ponadto z aktywności przepływu pracy emitowane jest zdarzenie ostrzegawcze, co oznacza, że aktywność zgłasza błąd.
Powtórz kroki 9 i 10 z danymi wejściowymi innymi niż 0, aby żaden błąd nie został zgłoszony.
Profile śledzenia umożliwiają subskrybowanie zdarzeń emitowanych przez środowisko wykonawcze, gdy zmienia się stan instancji przepływu pracy. W zależności od wymagań dotyczących monitorowania można utworzyć profil, który jest mało szczegółowy i obejmuje niewielki zestaw zmian stanu na wysokim poziomie w przepływie pracy. Z drugiej strony można utworzyć bardzo dokładny profil, którego dane wyjściowe są wystarczająco bogate, aby później odtworzyć wykonanie. Przykład pokazuje emitowane zdarzenia ze środowiska uruchomieniowego przepływu pracy do funkcji ETW, przy użyciu elementu HealthMonitoring Tracking Profile
, który emituje niewielki zestaw zdarzeń. Inny profil, który emituje więcej zdarzeń śledzenia przepływu pracy, jest również dostępny w Web.config o nazwie Troubleshooting Tracking Profile
. Po zainstalowaniu programu .NET Framework 4.6.1 profil domyślny o pustej nazwie jest skonfigurowany w pliku Machine.config. Ten profil jest używany przez konfigurację zachowania śledzenia ETW, gdy nie określono nazwy profilu lub pustej nazwy profilu.
Profil śledzenia monitorowania kondycji emituje rekordy wystąpień przepływu pracy i rekordy propagacji błędów działań. Ten profil jest tworzony przez dodanie następującego profilu śledzenia do pliku konfiguracji Web.config.
<tracking>
<profiles>
<trackingProfile name="HealthMonitoring Tracking Profile">
<workflow activityDefinitionId="*">
<workflowInstanceQueries>
<workflowInstanceQuery>
<states>
<state name="Started"/>
<state name="Completed"/>
<state name="Aborted"/>
<state name="UnhandledException"/>
</states>
</workflowInstanceQuery>
</workflowInstanceQueries>
<faultPropagationQueries>
<faultPropagationQuery faultSourceActivityName ="*" faultHandlerActivityName="*"/>
</faultPropagationQueries>
</workflow>
</trackingProfile>
</profiles>
</tracking>
Profil można zmienić, zmieniając konfigurację EtwTrackingParticipant
na następującą.
<behaviors>
<serviceBehaviors>
<behavior>
<etwTracking profileName="HealthMonitoring Tracking Profile"/>
</behavior>
</serviceBehaviors>
</behaviors>
Aby wyczyścić (opcjonalnie)
Otwórz Podgląd zdarzeń.
Przejdź do Podgląd zdarzeń, Dzienniki aplikacji i usług, Microsoft, Windows, Serwer aplikacji - Aplikacje. Kliknij prawym przyciskiem myszy pozycję Analityczne i wybierz polecenie Wyłącz dziennik.
Przejdź do Podgląd zdarzeń, Dzienniki aplikacji i usług, Microsoft, Windows, Serwer aplikacji - Aplikacje. Kliknij prawym przyciskiem myszy pozycję Analityczne i wybierz polecenie Wyczyść dziennik.
Wybierz opcję Wyczyść , aby wyczyścić zdarzenia.
Znany problem
Uwaga / Notatka
W Podglądzie zdarzeń występuje znany problem, który może nie dekodować zdarzeń ETW. Może zostać wyświetlony komunikat o błędzie podobny do poniższego.
Nie można odnaleźć opisu identyfikatora <> zdarzenia ze źródłowejWindows-Application Server-Applications firmy Microsoft. Składnik, który zgłasza to zdarzenie, nie jest zainstalowany na komputerze lokalnym lub instalacja jest uszkodzona. Składnik można zainstalować lub naprawić na komputerze lokalnym.
Jeśli wystąpi ten błąd, kliknij przycisk Odśwież w okienku akcji. Zdarzenie powinno teraz dekodować prawidłowo.