다음을 통해 공유


작업 2: App.Config를 사용하여 런타임 서비스 구성

작업 1: 코드를 사용하여 런타임 서비스 구성에서는 WorkflowRuntime 클래스에 정의된 AddService 메서드를 호출하여 DefaultWorkflowSchedulerService 서비스를 Windows Workflow Foundation 런타임 엔진에 추가했습니다. 이 연습에서는 응용 프로그램 구성 파일을 사용하여 런타임 서비스를 구성합니다.

구성 파일을 사용하면 응용 프로그램에서 사용할 수 있는 Windows Workflow 런타임 엔진의 몇 가지 구성을 만들 수 있기 때문에 융통성이 더 큽니다. 예를 들어, 서비스를 사용하지 않는 구성을 만들거나 워크플로 실행 중에 유지 및 추적 기능을 사용하는 런타임 엔진 구성을 만들 수 있습니다. 또한 이러한 구성은 동일한 구성 파일에서 정의되고 필요한 경우 호스트 응용 프로그램에서 액세스될 수 있습니다.

참고

작업 1: 코드를 사용하여 런타임 서비스 구성을 완료한 경우 구성 파일을 사용하여 런타임 서비스를 구성하기 때문에 프로젝트의 모든 변경 내용을 실행 취소해야 합니다. 이 작업에 제공되는 프로젝트 파일은 이전 작업에서 추가된 코드를 포함하지 않으므로 좋은 시작 지점이 됩니다.

참고

이 연습을 차례대로 수행하는 것이 좋지만 반드시 그럴 필요는 없습니다. 샘플 프로젝트를 열고 다음 단원의 단계를 진행하여 이 연습을 시작할 수 있습니다.

응용 프로그램 구성 파일을 만들려면

  1. 프로젝트 디렉터리에서 App.config라는 새 파일을 만듭니다.

  2. HostingWorkflows 프로젝트 파일에서 소스 파일이 포함된 ItemGroup 요소에 None이라는 새 요소를 추가합니다.

  3. 값이 "App.config"인 Include라는 특성을 추가합니다.

응용 프로그램 구성 파일을 정의하려면

  1. App.config 파일에서 UTF-8 인코딩으로 표준 XML 처리 명령을 만듭니다.

    <?xml version="1.0" encoding="utf-8" ?>
    
  2. configuration이라는 루트 요소를 만듭니다.

    <configuration>
    </configuration>
    
  3. configuration 요소에서 configSections라는 새 요소를 만듭니다.

    <configSections>
    </configSections>
    
  4. configSections 요소에서 section이라는 새 요소를 만듭니다.

  5. 값이 "HostingWorkflowRuntime"인 name이라는 특성을 추가합니다.

  6. 값이 "System.Workflow.Runtime.Configuration.WorkflowRuntimeSection, System.Workflow.Runtime, Version=3.0.00000.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"인 type이라는 다른 특성을 추가합니다.

    <section name="HostingWorkflowRuntime" type="System.Workflow.Runtime.Configuration.WorkflowRuntimeSection, System.Workflow.Runtime, Version=3.0.00000.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
    

    참고

    원하는 수의 구성 섹션을 만들 수 있지만 이 연습에서는 구성 섹션을 하나만 만들면 됩니다.

  7. 값이 "Hosting"인 name이라는 특성이 포함된 HostingWorkflowRuntime이라는 configuration 노드에서 새 요소를 만듭니다.

    참고

    이 요소 이름은 5단계에서 만든 섹션에 대한 name 특성에서 지정한 동일한 이름입니다. 여러 구성 섹션을 만드는 경우 각 섹션 이름에 해당하는 새 요소를 만듭니다.

    <HostingWorkflowRuntime Name="Hosting">
    </HostingWorkflowRuntime>
    
  8. HostingWorkflowRuntime 요소에서 CommonParameters라는 새 요소를 만듭니다.

    <CommonParameters/>
    
  9. HostingWorkflowRuntime 요소에서 Services라는 새 요소를 만듭니다.

    <Services>
    </Services>
    
  10. Services 요소에서 add라는 새 요소를 만듭니다.

  11. 값이 System.Workflow.Runtime.Hosting.DefaultWorkflowSchedulerService, System.Workflow.Runtime, Version=3.0.00000.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35인 type이라는 특성을 추가합니다.

  12. 값이 1인 maxSimultaneousWorkflows라는 다른 특성을 추가합니다.

    <add type="System.Workflow.Runtime.Hosting.DefaultWorkflowSchedulerService, System.Workflow.Runtime, Version=3.0.00000.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"  maxSimultaneousWorkflows="1"/>
    
  13. App.config 파일은 다음 구성과 유사합니다.

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
        <configSections>
            <section name="HostingWorkflowRuntime" type="System.Workflow.Runtime.Configuration.WorkflowRuntimeSection, System.Workflow.Runtime, Version=3.0.00000.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
        </configSections>
        <HostingWorkflowRuntime Name="Hosting">
            <CommonParameters/>
            <Services>
                <add type="System.Workflow.Runtime.Hosting.DefaultWorkflowSchedulerService, System.Workflow.Runtime, Version=3.0.00000.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"  maxSimultaneousWorkflows="1"/>
            </Services>
        </HostingWorkflowRuntime>
    </configuration>
    

응용 프로그램 구성 파일을 사용하려면

  • Program 클래스의 Main 메서드에서 WorkflowRuntime 개체를 인스턴스화하는 데 사용되는 WorkflowRuntime 생성자에 매개 변수를 추가합니다.

    이 매개 변수는 사용할 구성 섹션의 이름을 지정하는 String 형식입니다.

코드 컴파일

코드 컴파일에 대한 자세한 내용은 코드 컴파일을 참조하십시오.

작업 3: Windows Workflow 유지 서비스 사용에서는 SqlWorkflowPersistenceService 서비스를 사용하여 워크플로의 현재 상태를 저장하는 방법을 알아봅니다.

참고 항목

작업

작업 3: Windows Workflow 유지 서비스 사용

참조

DefaultWorkflowSchedulerService
System.Workflow.Runtime.Configuration

개념

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

기타 리소스

Workflow Configuration Formats

Footer image

Copyright © 2007 by Microsoft Corporation. All rights reserved.