Freigeben über


WorkflowRuntimeService.Start Methode

Definition

Startet beim Überschreiben in einer abgeleiteten Klasse den Dienst und ändert State in Starting.

protected public:
 virtual void Start();
protected internal virtual void Start ();
abstract member Start : unit -> unit
override this.Start : unit -> unit
Protected Friend Overridable Sub Start ()

Ausnahmen

Runtime ist ein NULL-Verweis (Nothing in Visual Basic).

- oder -

Der Dienst wurde bereits gestartet.

Beispiele

Im folgenden Beispiel wird das Aufrufen der Start-Methode für ein Objekt veranschaulicht, das von WorkflowRuntimeService abgeleitet wurde (TerminationTrackingService). Dieses Beispiel stammt aus dem Termination Tracking Service SDK-Beispiel. Weitere Informationen finden Sie unter Beispiel für den Beendigungsnachverfolgungsdienst.

protected override void Start()
{
    base.Start();
    //
    // This will throw if we are invalid to inform the host immediately
    ValidateEventLogSource(source);
}
Protected Overrides Sub Start()
    MyBase.Start()
    '
    ' This will throw if we are invalid to inform the host immediately
    ValidateEventLogSource(source)
End Sub

Hinweise

Start wird von der Workflowruntime-Engine zu allen seiner Dienste aufgerufen, die von der WorkflowRuntimeService-Klasse abgeleitet werden, wenn StartRuntime aufgerufen wird.

Start wird ebenfalls von der Workflowruntime-Engine aufgerufen, wenn der Workflowruntime-Engine ein Dienst hinzugefügt wird. Dazu wird AddService aufgerufen, nachdem die Workflowruntime-Engine bereits gestartet wurde. Bei der Standardimplementierung von Start wird erfasst, ob der Dienst bereits gestartet wurde. Anhand dieser Information wird dann die entsprechende Ausnahme ausgelöst, falls der Dienst gestartet wird, während er bereits ausgeführt wird.

Sie können zusätzliche Funktionalität bereitstellen, die zum Starten des Dienstes mit der Workflowruntime-Engine benötigt wird, indem Sie diese Methode überschreiben. Es ist nicht sicher, welche und ob überhaupt Dienste ausgeführt werden, wenn die Workflowruntime-Engine Start für Ihren Dienst aufruft. Führen Sie deshalb in der Start-Methode nur Initialisierungen aus, die nicht von Funktionalität abhängen, die von anderen Diensten bereitgestellt wird. Dazu gehört von den Hauptdiensten, beispielsweise dem Taskplanerdienst, bereitgestellte Funktionalität. Die Workflowruntime-Engine löst das WorkflowRuntime.Started-Ereignis aus, nachdem sie die Start-Methode aller seiner Dienste aufgerufen hat. Wenn Ihr Dienst eine weitere Initialisierung erfordert, nachdem alle Dienste der Workflowruntime-Engine gestartet wurden, können Sie die OnStarted-Methode überschreiben. Dabei können Sie diese Initialisierung auszuführen, wenn das Start-Ereignis ausgelöst wird.

Hinweis

Wenn Ihr Dienst durch einen Aufruf von AddService der Workflowruntime-Engine hinzugefügt wird, nachdem die Workflowruntime-Engine bereits gestartet wurde, ruft die Workflowruntime-Engine Start für Ihren Dienst auf. In diesem Fall ist das Started-Ereignis jedoch bereits eingetreten. Deshalb muss Ihr Dienst möglicherweise Initialisierungen, die er normalerweise in OnStarted ausführen würde, innerhalb der Start-Methode ausführen. Sie können IsStarted testen, um zu bestimmen, ob die Workflowruntime-Engine gestartet wurde.

Start sollte nur von der Workflowruntime-Engine aufgerufen werden.

Gilt für: