워크플로 구성 파일
Windows Workflow Foundation 호스트 응용 프로그램은 구성 파일을 사용하여 WorkflowRuntime 개체의 동작을 제어할 수 있습니다.
구성 섹션 만들기
구성 파일을 사용하여 워크플로 런타임 엔진을 구성하려면 먼저 .config 파일을 응용 프로그램(app.config) 또는 웹 서비스(web.config)에 대해 각각 만들어야 합니다. 다음 XML 코드와 같이 이 구성 파일에 구성 섹션을 만듭니다.
<configuration>
<configSections>
<section name="WorkflowRuntime" type="System.Workflow.Runtime.Configuration.WorkflowRuntimeSection, System.Workflow.Runtime, Version=3.0.00000.0, Culture=neutral, PublicKeyToken 31bf3856ad364e35" />
</configSections>
</configuration>
구성 섹션 정의
구성 파일에 여러 개의 구성 섹션이 포함될 수 있지만 WorkflowRuntime 개체를 인스턴스화하는 경우 하나의 섹션만 사용할 수 있습니다.
구성 섹션이 선언된 후 런타임이 해당 섹션에 사용할 구성 정보를 추가합니다. 섹션 태그 이름은 이전 예제에서 지정한 이름 특성에 지정된 이름과 일치합니다. 이 예제에서 섹션 태그는 WorkflowRuntime입니다.
<WorkflowRuntime Name="SampleApplication">
<CommonParameters>
<add name="ConnectionString" value="Initial Catalog=WorkflowStore;Data Source=localhost;Integrated Security=SSPI;" />
</CommonParameters>
<Services>
<add type="System.Workflow.Runtime.Hosting.DefaultWorkflowSchedulerService, System.Workflow.Runtime, Version=3.0.00000.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" maxQueuedWorkItems="20"/>
<add type="System.Workflow.Runtime.Hosting.SharedConnectionWorkflowTransactionService, System.Workflow.Runtime, Version=3.0.00000.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<add type="System.Workflow.Runtime.Hosting.SqlWorkflowPersistenceService, System.Workflow.Runtime, Version=3.0.00000.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" UnloadOnIdle="false"/>
</Services>
</WorkflowRuntime>
WorkflowRuntime 구성 섹션에는 단일 특성이 있습니다. Name은 이 WorkflowRuntime의 이름을 지정하는 데 사용됩니다. 이름은 시스템(예: 성능 카운터)에서 실행 중일 수 있는 다른 런타임과 이 런타임을 구분하기 위해 출력에서 사용됩니다.
구성 섹션에는 두 개의 중첩된 요소가 있습니다. CommonParameters 요소는 여러 서비스에서 전역적으로 사용되는 모든 매개 변수를 정의합니다. 예를 들어 SharedConnectionWorkflowCommitWorkBatchService를 사용하는 경우 ConnectionString을 정의합니다. 두 번째 요소는 이 워크플로 런타임 엔진에 대해 구성된 개별 서비스를 나열합니다. 서비스가 추가 구성 매개 변수를 사용하는 경우 이전 예제의 maxQueuedWorkItems 및 UnloadOnIdle 특성과 같이 해당 매개 변수가 특성으로 포함될 수도 있습니다.
구성 파일 사용
구성 파일은 WorkflowRuntime 개체의 동작을 제어합니다. WorkflowRuntime 개체의 인스턴스를 만들 때 프로그래밍 방식으로 서비스를 추가하거나 구성 파일을 이 항목에 표시된 대로 사용할 수 있습니다. 구성 파일에 정의된 구성 섹션을 사용하려면 구성 섹션의 이름을 매개 변수로 WorkflowRuntime 생성자에 전달합니다.
다음 예제에서는 이전에 만든 WorkflowRuntime 구성 섹션을 사용하여 WorkflowRuntime 인스턴스를 만드는 방법을 보여 줍니다.
WorkflowRuntime runtime = new WorkflowRuntime("WorkflowRuntime");
Dim runtime As New WorkflowRuntime("WorkflowRuntime")
추가 구성 옵션
다음 섹션에서는 구성 파일을 사용하여 작업 일괄 처리 다시 커밋, 워크플로 데이터 로깅 등의 특정 기능을 워크플로에서 활성화하는 방법에 대해 설명합니다.
작업 일괄 처리 다시 시도 사용
작업 일괄 처리를 DefaultWorkflowCommitWorkBatchService 및 SqlWorkflowPersistenceService 같은 지속성 저장소에 커밋하는 서비스의 경우 다음 예제와 같이 EnableRetries 속성을 설정하여 트랜잭션을 다시 시도하도록 할 수 있습니다.
<WorkflowRuntime Name="SampleApplication" UnloadOnIdle="false">
<CommonParameters>
<add name="ConnectionString" value="Initial Catalog=WorkflowStore;Data Source=localhost;Integrated Security=SSPI;" />
<add name="EnableRetries" value="True" />
</CommonParameters>
<Services>
<add type="System.Workflow.Runtime.Hosting.SqlWorkflowPersistenceService, System.Workflow.Runtime, Version=3.0.00000.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" EnableRetries="False" />
</Services>
</WorkflowRuntime>
EnableRetries 속성은 전역 수준에서 설정하거나(CommonParameters 섹션) EnableRetries를 지원하는 개별 서비스에 대해 설정할 수 있습니다(Services 섹션). 이 예제에서는 SqlWorkflowPersistenceService만 제외하고 EnableRetries를 지원하는 모든 서비스가 해당 기능을 허용합니다.
EnableRetries를 지원하는 서비스는 다음과 같습니다.
DefaultWorkflowCommitWorkBatchService
SharedConnectionWorkflowCommitWorkBatchService
SqlWorkflowPersistenceService
자세한 내용은 이전에 나열된 각 클래스의 EnableRetries 속성을 참조하십시오.
작업 일괄 처리 트랜잭션을 다시 시도하는 방법에 대한 자세한 내용은 Batching State Information in Workflows를 참조하십시오.
워크플로 로깅 사용
구성 파일을 사용하여 디버깅 시나리오에서 유용한 Windows Workflow Foundation 로깅 정보를 출력할 수 있습니다. Windows Workflow Foundation은 .NET Framework 2.0에서 소개된 구성 형식을 사용합니다. 여러 Windows Workflow Foundation 네임스페이스에 대해 정보 로깅을 사용하는 방법의 예제는 다음과 같습니다.
<system.diagnostics>
<switches>
<add name="System.Workflow LogToFile" value="1" />
<add name="System.Workflow.Runtime" value="All" />
<add name="System.Workflow.Runtime.Hosting" value="All" />
<add name="System.Workflow.Runtime.Tracking" value="All" />
<add name="System.Workflow.Activities" value="All" />
<add name="System.Workflow.Activities.Rules" value="All" />
</switches>
</system.diagnostics>
이 예제에서 첫 번째 추가 노드는 파일에 대한 로깅을 활성화합니다. WorkflowTrace.log라는 이름을 사용하여 호스트 응용 프로그램 디렉터리에 파일이 만들어집니다. 다른 옵션은 이름 매개 변수를 "System.Workflow LogToTraceListener"로 설정하여 TraceListener에 대한 로깅을 활성화합니다. 이 매개 변수를 설정하면 Windows Workflow Foundation은 호스트 응용 프로그램 내에서 만든 각 TraceListener를 열거하고 모든 로깅 정보를 보냅니다.
이전 예제의 나머지 줄에서는 로깅 정보를 캡처할 네임스페이스와 추적되는 정보량을 지정할 수 있습니다. 값 특성의 가능한 값은 다음과 같습니다.
값 | 설명 |
---|---|
All |
받은 모든 메시지를 기록합니다. |
Off |
메시지를 기록하지 않습니다. |
Critical |
중요한 메시지만 기록합니다. |
Error |
중요한 메시지와 오류 메시지를 기록합니다. |
Warning |
중요한 메시지와 오류 및 경고 메시지를 기록합니다. |
Information |
중요한 메시지와 오류, 경고 및 정보 메시지를 기록합니다. |
Verbose |
중요한 메시지와 오류, 경고, 정보 및 자세한 메시지를 기록합니다. |
참고 항목
참조
기타 리소스
How to: Add and Remove Workflow Services
Windows Workflow Foundation 일반 참조
Copyright © 2007 by Microsoft Corporation. All rights reserved.