WorkflowsteuerungsendpunktWorkflow Control Endpoint

Der Workflowsteuerungsendpunkt ermöglicht Entwicklern das Aufrufen von Steuerungsvorgängen, um mit WorkflowServiceHost gehostete Workflowinstanzen remote zu steuern.The workflow control endpoint allows developers to call control operations to remotely control workflow instances hosted using WorkflowServiceHost. Diese Funktion kann verwendet werden, um Steuerungsvorgänge wie das Anhalten, Fortsetzen und Beenden programmgesteuert auszuführen.This feature can be used to programmatically perform control operations like suspend, resume, and terminate.

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.If using the workflow control endpoint within a transaction and the workflow being controlled contains a Persist activity, the workflow instance will hang until the transaction times out.

WorkflowinstanzverwaltungWorkflow Instance Management

.NET Framework 4.6.1.NET Framework 4.6.1 definiert einen neuen Vertrag mit dem Namen IWorkflowInstanceManagement. defines a new contract called IWorkflowInstanceManagement. Dieser Vertrag definiert eine Reihe von Steuerungsvorgängen, mit denen Sie von WorkflowServiceHost gehostete Workflowinstanzen remote steuern können.This contract defines a series of control operations that allow you remotely control workflow instances hosted by WorkflowServiceHost. WorkflowControlEndpoint ist ein Standardendpunkt, der eine Implementierung des IWorkflowInstanceManagement-Vertrags bereitstellt.WorkflowControlEndpoint is a standard endpoint that provides an implementation of the IWorkflowInstanceManagement contract. WorkflowControlClient ist eine Klasse, über die Steuerungsvorgänge an den WorkflowControlEndpoint gesendet werden.WorkflowControlClient is a class that is used to send the control operations to the WorkflowControlEndpoint.

Workflowinstanzen können einen der folgenden Zustände aufweisen:Workflow instances can be in one of the following states:

AktivActive
Dies ist der Zustand einer Workflowinstanz vor dem Zustand "Abgeschlossen", falls diese nicht den Zustand "Angehalten" aufweist.The state of a workflow instance before it reaches the completed state and when it is not in the suspended state. In diesem Zustand wird die Workflowinstanz ausgeführt und verarbeitet Anwendungsmeldungen.While in this state, the workflow instance runs and processes application messages.

AngehaltenSuspended
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.While in this state, the workflow instance does not run even if there are activities that have not started running or have partially run.

AbgeschlossenCompleted
Der Endzustand einer Workflowinstanz.The final state of a workflow instance. Die Workflowinstanz kann nicht ausgeführt werden, nachdem sie den Zustand "Abgeschlossen" erreicht hat.The workflow instance cannot run after reaching the completed state.

IWorkflowInstanceManagementIWorkflowInstanceManagement

Die IWorkflowInstanceManagement-Schnittstelle definiert einen Satz von Steuerungsvorgängen mit synchronen und asynchronen Versionen.The IWorkflowInstanceManagement interface defines a set of control operations with synchronous and asynchronous versions. Die transaktiven Versionen erfordern die Verwendung einer Bindung, die Transaktionen verarbeiten kann.The transacted versions require use of a transaction-aware binding. In der folgenden Tabelle sind die unterstützten Steuerungsvorgänge aufgelistet.The following table lists the control operations supported.

SteuerungsvorgangControl Operation BeschreibungDescription
AbbrechenAbort Erzwingt, dass Ausführung der Workflowinstanz beendet wird.Forcefully stops the execution of the workflow instance.
AbbrechenCancel Bewirkt, dass eine Workflowinstanz aus dem Zustand "Aktiv" oder "Angehalten" in den Zustand "Abgeschlossen" wechselt.Transitions a workflow instance from the active or suspended state to the completed state.
RunRun Ermöglicht, dass eine Workflowinstanz ausgeführt wird.Provides a workflow instance the opportunity to execute.
Suspend (Anhalten)Suspend Bewirkt, dass eine Workflowinstanz aus dem Zustand "Aktiv" in den Zustand "Angehalten" wechselt.Transitions a workflow instance from the active state to the suspended state.
BeendenTerminate Bewirkt, dass eine Workflowinstanz aus dem Zustand "Aktiv" oder "Angehalten" in den Zustand "Abgeschlossen" wechselt.Transitions a workflow instance from the active or suspended state to the completed state.
Unsuspend (Fortsetzen)Unsuspend Bewirkt, dass eine Workflowinstanz aus dem Zustand "Angehalten" in den Zustand "Aktiv" wechselt.Transitions a workflow instance from the suspended state to the active state.
TransactedCancelTransactedCancel Führt den Vorgang „Abbrechen“ im Rahmen einer Transaktion (per Transaktionsfluss vom Client oder lokal erstellt) aus.Performs the Cancel operation under a transaction (flowed in from the client or created locally). Wenn das System den permanenten Zustand der Workflowinstanz beibehält, muss die Workflowinstanz während der Ausführung dieses Vorgangs beibehalten werden.If the system maintains the durable state of the workflow instance, the workflow instance must be persisted during execution of this operation.
TransactedRunTransactedRun Führt den Vorgang „Ausführen“ im Rahmen einer Transaktion (per Transaktionsfluss vom Client oder lokal erstellt) aus.Performs the Run operation under a transaction (flowed in from the client or created locally). Wenn das System den permanenten Zustand der Workflowinstanz beibehält, muss die Workflowinstanz während der Ausführung dieses Vorgangs beibehalten werden.If the system maintains the durable state of the workflow instance, the workflow instance must be persisted during execution of this operation.
TransactedSuspendTransactedSuspend Führt den Vorgang "Anhalten" im Rahmen einer Transaktion (per Transaktionsfluss vom Client oder lokal erstellt) aus.Performs the Suspend operation under a transaction (flowed in from the client or created locally). Wenn das System den permanenten Zustand der Workflowinstanz beibehält, muss die Workflowinstanz während der Ausführung dieses Vorgangs beibehalten werden.If the system maintains the durable state of the workflow instance, the workflow instance must be persisted during execution of this operation.
TransactedTerminateTransactedTerminate Führt den Vorgang „Beenden“ im Rahmen einer Transaktion (per Transaktionsfluss vom Client oder lokal erstellt) aus.Performs the Terminate operation under a transaction (flowed in from the client or created locally). Wenn das System den permanenten Zustand der Workflowinstanz beibehält, muss die Workflowinstanz während der Ausführung dieses Vorgangs beibehalten werden.If the system maintains the durable state of the workflow instance, the workflow instance must be persisted during execution of this operation.
TransactedUnsuspendTransactedUnsuspend Führt den Vorgang "Fortsetzen" im Rahmen einer Transaktion (per Transaktionsfluss vom Client oder lokal erstellt) aus.Performs the Unsuspend operation under a transaction (flowed in from the client or created locally). Wenn das System den permanenten Zustand der Workflowinstanz beibehält, muss die Workflowinstanz während der Ausführung dieses Vorgangs beibehalten werden.If the system maintains the durable state of the workflow instance, the workflow instance must be persisted during execution of this operation.

Mit dem IWorkflowInstanceManagement-Vertrag können Sie keine neue Workflowinstanz erstellen, sondern nur vorhandene Workflowinstanzen verwalten.The IWorkflowInstanceManagement contract does not provide a means to create a new workflow instance, only to manage existing workflow instances. Weitere Informationen zu Remote Erstellen einer neuen Workflowinstanz, finden Sie unter Erweiterbarkeit des Workflowdiensthosts.For more information about remotely creating a new workflow instance, see Workflow Service Host Extensibility.

WorkflowControlEndpointWorkflowControlEndpoint

WorkflowControlEndpoint ist ein Standardendpunkt mit einem festen Vertrag (IWorkflowInstanceManagement).WorkflowControlEndpoint is a standard endpoint with a fixed contract, 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.When added to a WorkflowServiceHost instance, this endpoint can then be used to send command operations to any workflow instance hosted by the host instance. Weitere Informationen zu Standardendpunkten, finden Sie unter Standardendpunkte.For more information about standard endpoints, see Standard Endpoints.

WorkflowControlClientWorkflowControlClient

WorkflowControlClient ist eine Klasse, mit der Sie Steuerungsmeldungen an einen WorkflowControlEndpoint auf einem WorkflowServiceHost senden können.WorkflowControlClient is a class that allows you to send control messages to a WorkflowControlEndpoint on a WorkflowServiceHost. Die Klasse enthält eine Methode für jeden einzelnen Vorgang, der vom IWorkflowInstanceManagement-Vertrag unterstützt wird, mit Ausnahme der transaktiven Vorgänge.It contains a method for each of the operations supported by the IWorkflowInstanceManagement contract except for the transacted operations. WorkflowControlClient verwendet die Ambient-Transaktion, um zu ermitteln, ob ein transaktiver Vorgang verwendet werden soll.WorkflowControlClient uses the ambient transaction to determine whether a transacted operation should be used.