Freigeben über


Verwenden der Nachverfolgung zur Problembehandlung von Anwendungen

Mit Windows Workflow Foundation (WF) können Sie workflowbezogene Informationen nachverfolgen, um Details zur Ausführung einer Windows Workflow Foundation-Anwendung oder eines Diensts zu geben. Windows Workflow Foundation-Hosts können Workflowereignisse während der Ausführung einer Workflowinstanz erfassen. Wenn Ihr Workflow Fehler oder Ausnahmen generiert, können Sie die Windows Workflow Foundation-Nachverfolgungsdetails verwenden, um die Verarbeitung zu beheben.

Problembehandlung von WF mit der WF-Überwachung

Um Fehler innerhalb der Verarbeitung einer Windows Workflow Foundation-Aktivität zu erkennen, können Sie die Nachverfolgung mit einem Nachverfolgungsprofil aktivieren, das nach einem ActivityStateRecord im Zustand "Faulted" sucht. Die entsprechende Abfrage wird im folgenden Code angegeben.

<activityStateQueries>  
              <activityStateQuery activityName="*">  
                <states>  
                  <state name="Faulted" />  
                </states>  
              </activityStateQuery>  
 </activityStateQueries>  

Wenn ein Fehler in einem Fehlerhandler (z. B. einer TryCatch aktivität) weitergegeben und behandelt wird, kann dies mithilfe einer FaultPropagationRecord erkannt werden. Dies FaultPropagationRecord gibt die Quellaktivität des Fehlers und den Namen des Fehlerhandlers an. Die FaultPropagationRecord enthält Fehlerdetails in Form des Ausnahmestapels für den Fehler. Die Abfrage zum Abonnieren einer FaultPropagationRecord- Abfrage wird im folgenden Beispiel gezeigt.

<faultPropagationQueries>  
              <faultPropagationQuery faultSourceActivityName ="*" faultHandlerActivityName="*"/>  
 </faultPropagationQueries>  

Wenn ein Fehler nicht innerhalb des Workflows behandelt wird, führt er zu einer unbehandelten Ausnahme in der Workflowinstanz, und die Workflowinstanz wird abgebrochen. Um die Details der nicht behandelten Ausnahme zu verstehen, muss das Überwachungsprofil eine Abfrage des Workflowinstanz-Datensatzes nach state name="UnhandledException" ausführen, wie im folgenden Beispiel angegeben.

<workflowInstanceQueries>  
              <workflowInstanceQuery>  
                <states>  
                  <state name="UnhandledException" />  
                </states>  
              </workflowInstanceQuery>  
</workflowInstanceQueries>  

Wenn eine Workflowinstanz auf eine unbehandelte Ausnahme stößt, wird ein WorkflowInstanceUnhandledExceptionRecord Objekt ausgegeben, wenn die Windows Workflow Foundation-Nachverfolgung aktiviert wurde.

Dieser Überwachungsdatensatz enthält die Fehlerdetails in Form des Ausnahmestapels. Es enthält Details zur Quelle des Fehlers (z. B. die Aktivität), die fehlerhaft war und zu der unbehandelten Ausnahme führte. Um Fehlerereignisse von einer Windows Workflow Foundation zu abonnieren, aktivieren Sie die Nachverfolgung, indem Sie einen Nachverfolgungsteilnehmer hinzufügen. Konfigurieren Sie diesen Teilnehmer mit einem Nachverfolgungsprofil, das nach ActivityStateQuery (state="Faulted"), FaultPropagationRecord und WorkflowInstanceQuery (state="UnhandledException") sucht.

Wenn die Nachverfolgung mithilfe des ETW-Tracking-Teilnehmers aktiviert ist, werden die Fehlerereignisse an eine ETW-Sitzung ausgegeben. Die Ereignisse können mit der Ereignisanzeige angezeigt werden. Dies können Sie unter dem Knoten > im Analytik-Kanal finden.

Siehe auch