워크플로 응용 프로그램 유지
이 항목은 Windows Workflow Foundation 4에 적용됩니다.
이 샘플에서는 WorkflowApplication을 실행하고, 유휴 상태가 되면 언로드한 다음, 다시 로드하여 실행을 계속하는 방법을 보여 줍니다.
샘플 세부 정보
WorkflowApplication은 간단한 인터페이스를 제공하고 더 일반적인 여러 가지 호스팅 시나리오를 지원하는 단일 워크플로 인스턴스에 대한 호스트입니다. 그와 같은 시나리오 중 하나로 지속성의 지원을 받는 장기 실행 워크플로가 있습니다. 지속성의 호스트는 WorkflowApplication에 대한 지속성 작업을 호출하거나 WorkflowApplication 이벤트를 처리하고 WorkflowApplication을 지속하도록 표시하는 방식으로 제어됩니다.
이 샘플 워크플로는 사용자의 이름을 입력하도록 요구하는 WriteLine 활동, Bookmark를 다시 시작하여 이름을 입력으로 받는 ReadLine
활동 및 사용자에게 환영 메시지를 표시하는 WriteLine으로 구성되어 있습니다. 워크플로에서 입력을 기다리는 동안이 바로 자연스럽게 지속성을 유지하는 지점입니다. 이를 일컬어 흔히 Idle 지점이라고 합니다. WorkflowApplication에서는 워크플로 프로그램을 지속할 수 있을 때마다 Idle 이벤트를 발생시키고, 책갈피가 다시 시작되기를 기다리며, 다른 어떠한 작업도 수행하지 않습니다. 이 샘플의 워크플로에서 해당 지점은 ReadLine
활동의 실행을 시작한 직후에 발생합니다.
InstanceStore를 통해 지속성을 유지하기 위해 WorkflowApplication을 설정합니다. 이 샘플에서는 SqlWorkflowInstanceStore을 사용합니다. WorkflowApplication을 실행하기 전에 InstanceStore 속성에 InstanceStore를 할당해야 합니다.
이 샘플에서는 PersistableIdle 이벤트에 대한 처리기를 추가합니다. 이 이벤트 처리기는 PersistableIdleAction을 반환하여 어떤 WorkflowApplication을 수행할지 지정합니다. Unload가 반환되면 WorkflowApplication이 언로드됩니다.
그런 다음 이 샘플에서는 사용자의 입력을 받은 후 지속 중이던 워크플로를 새 WorkflowApplication으로 로드합니다. 이를 위해 새 WorkflowApplication을 만들고, InstanceStore를 다시 만들고, 완료 후 언로드된 이벤트를 인스턴스에 연결하고, 대상 워크플로 인스턴스의 식별자를 사용하여 Load를 호출합니다. 인스턴스를 획득하고 나면 ReadLine
활동의 책갈피가 다시 시작됩니다. 워크플로가 ReadLine
활동 내에서 실행되고 완료됩니다. 워크플로가 완료 및 언로드되면 InstanceStore가 마지막으로 한 번 더 호출되어 워크플로를 삭제합니다.
이 샘플을 사용하려면
Visual Studio 2010 명령 프롬프트를 엽니다.
이 샘플에는 SQL Server Express가 필요합니다. SQL Server Express는 기본적으로 Visual Studio 2010과 함께 설치됩니다.
샘플 디렉터리(\WF\Basic\Persistence\InstancePersistence\CS)로 이동하여 CreateInstanceStore.cmd를 실행합니다.
주의: CreateInstanceStore.cmd 스크립트가 SQL Server 2008 Express의 기본 인스턴스에 데이터베이스를 만들려고 시도합니다. 다른 인스턴스에 데이터베이스를 설치하려면 스크립트를 수정합니다. Visual Studio 2010에서 Persistence.sln 솔루션 파일을 열고 F6 키를 눌러 솔루션을 빌드합니다.
주의: SQL Server의 기본 인스턴스가 아닌 인스턴스에 데이터베이스를 설치한 경우 솔루션을 빌드하기 전에 코드에서 연결 문자열을 업데이트합니다. Windows 탐색기에서 프로젝트의 bin 디렉터리(\WF\Basic\Persistence\InstancePersistence\bin\Debug)로 이동하여 Workflow.exe를 마우스 오른쪽 단추로 클릭하고 관리자 권한으로 실행을 선택하여 관리자 권한으로 샘플을 실행합니다.
인스턴스 저장소 데이터베이스를 제거하려면
Visual Studio 2010 명령 프롬프트를 엽니다.
샘플 디렉터리로 이동하여 RemoveInstanceStore.cmd를 실행합니다.
참고: |
---|
컴퓨터에 이 샘플이 이미 설치되어 있을 수도 있습니다. 계속하기 전에 다음(기본) 디렉터리를 확인하십시오.
<InstallDrive>:\WF_WCF_Samples
이 디렉터리가 없으면 Windows Communication Foundation (WCF) and Windows Workflow Foundation (WF) Samples for .NET Framework 4로 이동하여 WCF(Windows Communication Foundation) 및 WF 샘플을 모두 다운로드하십시오. 이 샘플은 다음 디렉터리에 있습니다.
<InstallDrive>:\WF_WCF_Samples\WF\Basic\Persistence\InstancePersistence
|