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, bleibt die Workflowinstanz bis zum Timeout der Transaktion hängen.

Workflowinstanzverwaltung

.NET Framework 4.6.1 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.Weitere Informationen finden Sie unter 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 dieser zum Senden von Befehlsvorgängen an eine beliebige Workflowinstanz verwendet werden, die von der Hostinstanz gehostet wird.Weitere Informationen finden Sie unter 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.