Workflowverwaltungsendpunkt
Dieses Thema gilt für Windows Workflow Foundation 4.
Der Workflowverwaltungsendpunkt ermöglicht Entwicklern das Aufrufen von Steuerungsvorgängen, um mit WorkflowServiceHost gehostete Workflowinstanzen remote zu steuern. Diese Funktion kann verwendet werden, um Steuerungsvorgänge wie das Anhalten, Fortsetzen und Beenden programmgesteuert auszuführen.
Workflowinstanzverwaltung
.NET Framework, Version 4 definiert einen neuen Vertrag mit dem Namen IWorkflowInstanceManagement. Dieser Vertrag definiert eine Reihe von Steuerungsvorgängen, mit denen Sie von WorkflowServiceHost gehostete Workflowinstanzen remote steuern können. WorkflowControlEndpoint ist ein Standardendpunkt, der eine Implementierung des IWorkflowInstanceManagement-Vertrags bereitstellt. WorkflowControlClient ist eine Klasse, über die Steuerungsvorgänge an WorkflowControlEndpoint gesendet werden.
Workflowinstanzen können einen der folgenden Zustände aufweisen:
- Aktiv
Dies ist der Zustand einer Workflowinstanz vor dem Zustand "Abgeschlossen", falls diese nicht den Zustand "Angehalten" aufweist. In diesem Zustand wird die Workflowinstanz ausgeführt und verarbeitet Anwendungsmeldungen.
- Angehalten
In diesem Zustand wird die Workflowinstanz nicht ausgeführt. Dies gilt auch, wenn Aktivitäten vorhanden sind, deren Ausführung noch nicht gestartet wurde oder die nur teilweise ausgeführt wurden.
- Abgeschlossen
Der Endzustand einer Workflowinstanz. Die Workflowinstanz kann nicht ausgeführt werden, nachdem sie den Zustand "Abgeschlossen" erreicht hat.
IWorkflowInstanceManagement
Die IWorkflowInstanceManagement-Schnittstelle definiert einen Satz von Steuerungsvorgängen mit synchronen und asynchronen Versionen. Die transaktiven Versionen erfordern die Verwendung einer Bindung, die Transaktionen verarbeiten kann. In der folgenden Tabelle sind die unterstützten Steuerungsvorgänge aufgelistet.
Steuerungsvorgang | Beschreibung |
---|---|
Abort (Abbrechen) |
Erzwingt, dass Ausführung der Workflowinstanz beendet wird. |
Cancel (Abbrechen) |
Bewirkt, dass eine Workflowinstanz aus dem Zustand "Aktiv" oder "Angehalten" in den Zustand "Abgeschlossen" wechselt. |
Run (Ausführen) |
Ermöglicht, dass eine Workflowinstanz ausgeführt wird. |
Suspend (Anhalten) |
Bewirkt, dass eine Workflowinstanz aus dem Zustand "Aktiv" in den Zustand "Angehalten" wechselt. |
Terminate (Beenden) |
Bewirkt, dass eine Workflowinstanz aus dem Zustand "Aktiv" oder "Angehalten" in den Zustand "Abgeschlossen" wechselt. |
Unsuspend (Fortsetzen) |
Bewirkt, dass eine Workflowinstanz aus dem Zustand "Angehalten" in den Zustand "Aktiv" wechselt. |
TransactedCancel |
Führt den Vorgang "Abbrechen" im Rahmen einer Transaktion (per Transaktionsfluss vom Client oder lokal erstellt) aus. Wenn das System den permanenten Zustand der Workflowinstanz beibehält, muss die Workflowinstanz während der Ausführung dieses Vorgangs beibehalten werden. |
TransactedRun |
Führt den Vorgang "Ausführen" im Rahmen einer Transaktion (per Transaktionsfluss vom Client oder lokal erstellt) aus. Wenn das System den permanenten Zustand der Workflowinstanz beibehält, muss die Workflowinstanz während der Ausführung dieses Vorgangs beibehalten werden. |
TransactedSuspend |
Führt den Vorgang "Anhalten" im Rahmen einer Transaktion (per Transaktionsfluss vom Client oder lokal erstellt) aus. Wenn das System den permanenten Zustand der Workflowinstanz beibehält, muss die Workflowinstanz während der Ausführung dieses Vorgangs beibehalten werden. |
TransactedTerminate |
Führt den Vorgang "Beenden" im Rahmen einer Transaktion (per Transaktionsfluss vom Client oder lokal erstellt) aus. Wenn das System den permanenten Zustand der Workflowinstanz beibehält, muss die Workflowinstanz während der Ausführung dieses Vorgangs beibehalten werden. |
TransactedUnsuspend |
Führt den Vorgang "Fortsetzen" im Rahmen einer Transaktion (per Transaktionsfluss vom Client oder lokal erstellt) aus. Wenn das System den permanenten Zustand der Workflowinstanz beibehält, muss die Workflowinstanz während der Ausführung dieses Vorgangs beibehalten werden. |
Mit dem IWorkflowInstanceManagement-Vertrag können Sie keine neue Workflowinstanz erstellen, sondern nur vorhandene Workflowinstanzen verwalten. Informationen zur Remoteerstellung einer neuen Weitere Informationen über Workflowinstanz finden Sie unter Erweiterbarkeit des Workflowdiensthosts.
WorkflowControlEndpoint
WorkflowControlEndpoint ist ein Standardendpunkt mit einem festen Vertrag (IWorkflowInstanceManagement). Wenn dieser Endpunkt einer WorkflowServiceHost-Instanz hinzugefügt wird, kann dieser zum Senden von Befehlsvorgängen an eine beliebige Workflowinstanz verwendet werden, die von der Hostinstanz gehostet wird. Weitere Informationen über Informationen zu Standardendpunkten finden Sie unter Standard Endpoints.
WorkflowControlClient
WorkflowControlClient ist eine Klasse, mit der Sie Steuerungsmeldungen an einen WorkflowControlEndpoint auf einem WorkflowServiceHost senden können. Die Klasse enthält eine Methode für jeden einzelnen Vorgang, der vom IWorkflowInstanceManagement-Vertrag unterstützt wird, mit Ausnahme der transaktiven Vorgänge. WorkflowControlClient verwendet die Ambient-Transaktion, um zu ermitteln, ob ein transaktiver Vorgang verwendet werden soll.