다음을 통해 공유


방법: 워크플로 서비스 추가 및 제거

워크플로 런타임에서 서비스를 추가하고 제거할 수 있습니다. WorkflowRuntime 클래스에 정의된 AddService 메서드를 사용하여 서비스를 추가할 수 있습니다. 역시 WorkflowRuntime 클래스에 정의된 RemoveService 메서드를 사용하여 서비스를 제거할 수 있습니다.

워크플로 런타임 엔진에 서비스 추가

WorkflowRuntime 클래스에 정의된 StartRuntime 메서드를 사용하여 워크플로 엔진의 실행이 시작되기 전에 워크플로에 필요한 서비스를 추가할 수 있습니다. 새 서비스를 추가하려면 서비스 개체의 새 인스턴스를 만들고 WorkflowRuntime 클래스에 정의된 AddService 메서드를 호출하여 서비스 개체를 매개 변수로 전달합니다. 다음 예제에서는 런타임 엔진을 만들고 시작한 다음 사용자 지정 추적 서비스 만들기에서 설명하는 EventLogTrackingService 서비스의 인스턴스를 만들고 해당 서비스를 워크플로 런타임 엔진에 추가하는 방법을 보여 줍니다.

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();
        }
    }
}

워크플로 런타임 엔진에서 서비스 제거

런타임 엔진에 서비스를 추가할 수 있는 것처럼 서비스를 제거할 수도 있습니다. 이렇게 하려면 WorkflowRuntime 클래스에 정의된 RemoveService 메서드를 호출합니다. 이 메서드에 대한 매개 변수는 제거할 서비스의 인스턴스입니다. 워크플로 런타임 엔진이 실행되지 않는 경우에만 서비스를 제거할 수 있습니다. 따라서 먼저 StopRuntime 메서드를 호출하고 서비스를 제거한 다음 StartRuntime을 호출하여 런타임을 다시 시작해야 합니다. 다음 예제는 EventLogTrackingService 서비스를 제거하여 이전에 보여 준 예제를 확장한 것입니다.

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);
        }
    }

참고

런타임 엔진이 실행 중일 때 런타임 엔진 자체에서 만들어진 서비스는 제거할 수 없습니다. 이러한 기본 서비스는 런타임의 실행이 시작될 때 추가되며 워크플로의 실행을 관리하는 데 필요합니다.

다음 서비스와 이러한 형식에서 파생되는 서비스는 런타임 엔진이 실행 중일 때 제거할 수 없습니다.

구성 파일을 사용하여 서비스를 추가하고 제거하는 방법에 대한 자세한 내용은 자습서: Windows Workflow Foundation 런타임 호스팅에 있는 작업 2: App.Config를 사용하여 런타임 서비스 구성Workflow Configuration Formats을 참조하십시오.

참고 항목

참조

WorkflowCommitWorkBatchService
WorkflowPersistenceService
TrackingService
WorkflowSchedulerService
WorkflowLoaderService

개념

워크플로 호스트 응용 프로그램 만들기

기타 리소스

워크플로 사용 응용 프로그램 개발

Footer image

Copyright © 2007 by Microsoft Corporation. All rights reserved.