Freigeben über


Gewusst wie: Hinzufügen und Entfernen von Workflowdiensten

Sie können Dienste in der Workflowlaufzeit hinzufügen und entfernen. Dienste werden mithilfe der in der WorkflowRuntime-Klasse definierten AddService-Methode hinzugefügt. Sie entfernen Dienste, indem Sie die RemoveService-Methode verwenden, die auch in der WorkflowRuntime-Klasse definiert ist.

Hinzufügen von Diensten zum Workflow-Laufzeitmodul

Bevor das Workflowmodul die Ausführung mithilfe der in der WorkflowRuntime-Klasse definierten StartRuntime-Methode beginnt, können die für den Workflow erforderlichen Dienste hinzugefügt werden. Erstellen Sie zum Hinzufügen eines neuen Diensts eine neue Instanz des Dienstobjekts, und rufen Sie die in der WorkflowRuntime-Klasse definierte AddService-Methode auf, und übergeben Sie das Dienstobjekt als Parameter. Das folgende Beispiel zeigt, wie das Laufzeitmodul erstellt und gestartet, eine Instanz des in Erstellen von benutzerdefinierten Überwachungsdiensten beschriebenen EventLogTrackingService-Diensts erstellt und dieser Dienst dem Workflow-Laufzeitmodul hinzugefügt wird.

using System;
using System.Collections.Generic;
using System.Text;
using System.Threading;
using System.Workflow.Runtime;
using System.Workflow.Runtime.Hosting;

namespace WorkflowApplication
{
    class WorkflowHostExample
    {
        static void Main(string[] args)
        {
            // Create the runtime and EventLogTrackingService objects.
            WorkflowRuntime runtime = new WorkflowRuntime();
            EventLogTrackingService eventlogService = new EventLogTrackingService();

            // Add the EventLogTrackingService and start the runtime. 
            runtime.AddService(eventlogService);
            runtime.StartRuntime();

            ...

            runtime.StopRuntime();
        }
    }
}

Entfernen von Diensten aus dem Workflow-Laufzeitmodul

Sie können dem Laufzeitmodul Dienste hinzufügen und diese daraus entfernen. Dies erfolgt durch Aufrufen der RemoveService-Methode, die in der WorkflowRuntime-Klasse definiert ist. Der Parameter für diese Methode ist die Instanz des zu entfernenden Diensts. Ein Dienst kann nur entfernt werden, wenn das Workflow-Laufzeitmodul nicht ausgeführt wird. Daher muss zuerst die StopRuntime-Methode aufgerufen, der Dienst entfernt und anschließend die Laufzeit erneut durch Aufrufen von StartRuntime gestartet werden. Das folgende Beispiel führt das zuvor gezeigte Beispiel durch Entfernen des EventLogTrackingService-Diensts fort.

using System;
using System.Collections.Generic;
using System.Text;
using System.Threading;
using System.Workflow.Runtime;
using System.Workflow.Runtime.Hosting;

namespace WorkflowApplication
{
    class WorkflowHostExample
    {
        static void Main(string[] args)
        {
            // Create the runtime and EventLogTrackingService objects.
            WorkflowRuntime runtime = new WorkflowRuntime();
            EventLogTrackingService eventlogService = new EventLogTrackingService();

            // Add the EventLogTrackingService and start the runtime.
            runtime.AddService(eventlogService);
            runtime.StartRuntime();

            ...
            // Stop the runtime and remove the EventLogTrackingService.
            runtime.StopRuntime();
            runtime.RemoveService(eventlogService);
        }
    }

Hinweis

Dienste, die während der Ausführung des Laufzeitmoduls vom Laufzeitmodul selbst erstellt wurden, können nicht entfernt werden. Diese Standarddienste werden bei Beginn der Laufzeitausführung hinzugefügt und sind zum Verwalten der Ausführung jedes Workflows erforderlich.

Die folgenden Dienste sowie die von diesen Typen abgeleiteten Dienste können während der Ausführung des Laufzeitmoduls nicht entfernt werden:

Weitere Informationen zum Hinzufügen und Entfernen von Diensten mithilfe einer Konfigurationsdatei finden Sie unter Aufgabe 2: Konfigurieren von Laufzeitdiensten mithilfe von App.Config (in Lernprogramm: Hosten der Laufzeit von Windows Workflow Foundation und Workflow Configuration Formats).

Siehe auch

Referenz

WorkflowCommitWorkBatchService
WorkflowPersistenceService
TrackingService
WorkflowSchedulerService
WorkflowLoaderService

Konzepte

Erstellen einer Workflowhostanwendung

Weitere Ressourcen

Entwickeln von workflowaktivierten Anwendungen

Footer image

Copyright © 2007 by Microsoft Corporation. Alle Rechte vorbehalten.