WorkflowRuntime.StartRuntime Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Startet die Workflowruntime-Engine und die Workflowruntime-Engine-Dienste.
public:
void StartRuntime();
public void StartRuntime ();
member this.StartRuntime : unit -> unit
Public Sub StartRuntime ()
Ausnahmen
WorkflowRuntime wird verworfen.
Für WorkflowRuntime ist mehr als ein CommitWorkBatch
-Dienst für den Workflow registriert.
- oder -
Für WorkflowRuntime ist mehr als ein Planungsdienst registriert.
- oder -
Für WorkflowRuntime ist mehr als ein Persistenzdienst registriert.
Beispiele
Das folgende Codebeispiel zeigt, wie Sie die WorkflowRuntime-Funktionalität eines Workflowhosts verwenden können. Der Code ruft StartRuntime auf, nachdem WorkflowRuntime eine WorkflowRuntime-Instanz erstellt und AddService aufgerufen hat, um der Laufzeit Dienste hinzuzufügen. Außerdem wird StartRuntime aufgerufen, bevor weitere Verarbeitungsschritte erfolgen.
Dieses Codebeispiel ist Teil des Beispiels Zum Abbrechen eines Workflows .
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. Es muss nur einen der folgenden Kerndienste vorhanden sein: einen Workflowdienst CommitWorkBatch
, der von der WorkflowCommitWorkBatchService Basisklasse abgeleitet ist, und ein Planerdienst, der von der WorkflowSchedulerService Basisklasse abgeleitet ist. Wenn einer oder beide kernigen Dienste fehlen, stellt die Workflowlaufzeit-Engine den entsprechenden Standarddienst bereit: DefaultWorkflowCommitWorkBatchService für den Workflowdienst CommitWorkBatch
und DefaultWorkflowSchedulerService für den Planerdienst. Ein Persistenzdienst ist optional, aber es darf jeweils nur ein Persistenzdienst vorhanden sein. Nach der Validierung der Dienstkonfiguration ruft StartRuntime für alle Dienste Start auf, die von der WorkflowRuntimeService-Klasse abgeleitet sind. Zuletzt legt die Workflowruntime-Engine IsStarted fest und löst das Started-Ereignis aus.
Sie können Basisdienste nicht hinzufügen oder entfernen, nachdem die Workflowruntime-Engine gestartet wurde. Bei Basisdiensten handelt es sich um Dienste, die von den Klassen WorkflowSchedulerService, WorkflowCommitWorkBatchService, WorkflowPersistenceService oder TrackingService abgeleitet sind. Wenn Sie StartRuntime aufrufen, während die Workflowruntime-Engine ausgeführt wird, wird keine Aktion ausgeführt.