WorkflowRuntime.StartRuntime Methode

Definition

Startet die Workflowruntime-Engine und die Workflowruntime-Engine-Dienste.Starts the workflow run-time engine and the workflow run-time engine services.

public:
 void StartRuntime();
public void StartRuntime ();
member this.StartRuntime : unit -> unit
Public Sub StartRuntime ()

Ausnahmen

WorkflowRuntime wird verworfen.The WorkflowRuntime is disposed.

Für WorkflowRuntime ist mehr als ein CommitWorkBatch-Dienst für den Workflow registriert.There is more than one service workflow CommitWorkBatch service registered with this WorkflowRuntime.

- oder --or- Für WorkflowRuntime ist mehr als ein Planungsdienst registriert.There is more than one scheduler service registered with this WorkflowRuntime.

- oder --or- Für WorkflowRuntime ist mehr als ein Persistenzdienst registriert.There is more than one persistence service registered with this WorkflowRuntime.

Beispiele

Das folgende Codebeispiel zeigt, wie Sie die WorkflowRuntime-Funktionalität eines Workflowhosts verwenden können.The following code example demonstrates how to use WorkflowRuntime functionality from a workflow host. Der Code ruft StartRuntime auf, nachdem WorkflowRuntime eine WorkflowRuntime-Instanz erstellt und AddService aufgerufen hat, um der Laufzeit Dienste hinzuzufügen.The code calls the StartRuntime after the WorkflowRuntime creates a WorkflowRuntime instance and after it calls AddService to add services to the runtime. Außerdem wird StartRuntime aufgerufen, bevor weitere Verarbeitungsschritte erfolgen.It also calls StartRuntime before any other processing occurs.

Dieses Codebeispiel ist Teil des Beispiels für das Abbrechen eines Workflows .This code example is part of the Canceling a Workflow sample.

static void Main()
{
    string connectionString = "Initial Catalog=SqlPersistenceService;Data Source=localhost;Integrated Security=SSPI;";

    using (WorkflowRuntime workflowRuntime = new WorkflowRuntime())
    {
        ExternalDataExchangeService dataService = new ExternalDataExchangeService();
        workflowRuntime.AddService(dataService);
        dataService.AddService(expenseService);

        workflowRuntime.AddService(new SqlWorkflowPersistenceService(connectionString));
        workflowRuntime.StartRuntime();

        workflowRuntime.WorkflowCompleted += OnWorkflowCompleted;
        workflowRuntime.WorkflowTerminated += OnWorkflowTerminated;
        workflowRuntime.WorkflowIdled += OnWorkflowIdled;
        workflowRuntime.WorkflowAborted += OnWorkflowAborted;

        Type type = typeof(SampleWorkflow1);
        WorkflowInstance workflowInstance = workflowRuntime.CreateWorkflow(type);
        workflowInstance.Start();

        waitHandle.WaitOne();

        workflowRuntime.StopRuntime();
    }
}
Shared Sub Main()
    Dim connectionString As String = "Initial Catalog=SqlPersistenceService;Data Source=localhost;Integrated Security=SSPI;"
    Using workflowRuntime As New WorkflowRuntime()
        Dim dataService As New ExternalDataExchangeService()
        workflowRuntime.AddService(dataService)
        dataService.AddService(expenseService)

        workflowRuntime.AddService(New SqlWorkflowPersistenceService(connectionString))


        AddHandler workflowRuntime.WorkflowCompleted, AddressOf OnWorkflowCompleted
        AddHandler workflowRuntime.WorkflowTerminated, AddressOf OnWorkflowTerminated
        AddHandler workflowRuntime.WorkflowIdled, AddressOf OnWorkflowIdled
        AddHandler workflowRuntime.WorkflowAborted, AddressOf OnWorkflowAborted


        Dim workflowInstance As WorkflowInstance
        workflowInstance = workflowRuntime.CreateWorkflow(GetType(SampleWorkflow))
        workflowInstance.Start()

        waitHandle.WaitOne()

        workflowRuntime.StopRuntime()
    End Using
End Sub

Hinweise

Diese Methode überprüft, ob ein gültiger Satz von Basisdiensten vorhanden ist, und startet anschließend alle Dienste, die von der WorkflowRuntimeService-Klasse abgeleitet werden.This method verifies that a valid set of core services exists and then starts any services that derive from the WorkflowRuntimeService class. Es darf nur einer der folgenden grundlegenden Dienste vorhanden sein: ein Workflow CommitWorkBatch Dienst, der von der WorkflowCommitWorkBatchService -Basisklasse abgeleitet ist, und ein von der WorkflowSchedulerService -Basisklasse abgeleiteter Scheduler-Dienst.There must be one and only one of each of the following core services: a workflow CommitWorkBatch service derived from the WorkflowCommitWorkBatchService base class and a scheduler service derived from the WorkflowSchedulerService base class. Wenn einer oder beide dieser Basisdienste fehlen, stellt das Workflow Lauf Zeit Modul den geeigneten Standard Dienst bereit: DefaultWorkflowCommitWorkBatchService für den Workflow CommitWorkBatch Dienst und den Scheduler- DefaultWorkflowSchedulerService Dienst.If either or both of these core services are missing, the workflow run-time engine supplies the appropriate default service: DefaultWorkflowCommitWorkBatchService for the workflow CommitWorkBatch service and DefaultWorkflowSchedulerService for the scheduler service. Ein Persistenzdienst ist optional, aber es darf jeweils nur ein Persistenzdienst vorhanden sein.A persistence service is optional, but there can be at most only one persistence service present. Nach der Validierung der Dienstkonfiguration ruft StartRuntime für alle Dienste Start auf, die von der WorkflowRuntimeService-Klasse abgeleitet sind.After it has validated the service configuration, StartRuntime calls Start on all of the services that are derived from the WorkflowRuntimeService class. Zuletzt legt die Workflowruntime-Engine IsStarted fest und löst das Started-Ereignis aus.Finally, the workflow run-time engine sets IsStarted and raises the Started event.

Sie können Basisdienste nicht hinzufügen oder entfernen, nachdem die Workflowruntime-Engine gestartet wurde.You cannot add or remove core services after the workflow run-time engine is started. Bei Basisdiensten handelt es sich um Dienste, die von den Klassen WorkflowSchedulerService, WorkflowCommitWorkBatchService, WorkflowPersistenceService oder TrackingService abgeleitet sind.Core services are services that derive from the WorkflowSchedulerService class, the WorkflowCommitWorkBatchService class, the WorkflowPersistenceService class, or the TrackingService class. Wenn Sie StartRuntime aufrufen, während die Workflowruntime-Engine ausgeführt wird, wird keine Aktion ausgeführt.If you call StartRuntime while the workflow run-time engine is running, no action is performed.

Gilt für: