Workflowsteuerungsendpunkt

Der Workflowsteuerungsendpunkt 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.

Warnung

Wenn der Workflowsteuerungsendpunkt innerhalb einer Transaktion verwendet wird und der gesteuerte Workflow eine Persist-Aktivität enthält, wird die Workflowinstanz bis zum Timeout der Transaktion gesperrt.

Workflowinstanzverwaltung

.NET Framework 4.6.1 definiert einen neuen Vertrag namens 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 den 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.

Ausgesetzt
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
Abbruch Erzwingt, dass Ausführung der Workflowinstanz beendet wird.
Abbrechen Bewirkt, dass eine Workflowinstanz aus dem Zustand "Aktiv" oder "Angehalten" in den Zustand "Abgeschlossen" wechselt.
Ausführen Ermöglicht, dass eine Workflowinstanz ausgeführt wird.
Angehalten Bewirkt, dass eine Workflowinstanz aus dem Zustand "Aktiv" in den Zustand "Angehalten" wechselt.
Terminate 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. Weitere Informationen zur Remoteerstellung einer neuen 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 er zum Senden von Befehlsvorgängen an eine beliebige Workflowinstanz verwendet werden, die von der Hostinstanz gehostet wird. Weitere Informationen zu Standardendpunkten finden Sie unter Standardendpunkte.

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.