다음을 통해 공유


워크플로 응용 프로그램 유지

이 항목은 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가 마지막으로 한 번 더 호출되어 워크플로를 삭제합니다.

이 샘플을 사용하려면

  1. Visual Studio 2010 명령 프롬프트를 엽니다.

    이 샘플에는 SQL Server Express가 필요합니다. SQL Server Express는 기본적으로 Visual Studio 2010과 함께 설치됩니다.

  2. 샘플 디렉터리(\WF\Basic\Persistence\InstancePersistence\CS)로 이동하여 CreateInstanceStore.cmd를 실행합니다.

    Dd807516.Caution(ko-kr,VS.100).gif주의:
    CreateInstanceStore.cmd 스크립트가 SQL Server 2008 Express의 기본 인스턴스에 데이터베이스를 만들려고 시도합니다. 다른 인스턴스에 데이터베이스를 설치하려면 스크립트를 수정합니다.

  3. Visual Studio 2010에서 Persistence.sln 솔루션 파일을 열고 F6 키를 눌러 솔루션을 빌드합니다.

    Dd807516.Caution(ko-kr,VS.100).gif주의:
    SQL Server의 기본 인스턴스가 아닌 인스턴스에 데이터베이스를 설치한 경우 솔루션을 빌드하기 전에 코드에서 연결 문자열을 업데이트합니다.

  4. Windows 탐색기에서 프로젝트의 bin 디렉터리(\WF\Basic\Persistence\InstancePersistence\bin\Debug)로 이동하여 Workflow.exe를 마우스 오른쪽 단추로 클릭하고 관리자 권한으로 실행을 선택하여 관리자 권한으로 샘플을 실행합니다.

인스턴스 저장소 데이터베이스를 제거하려면

  1. Visual Studio 2010 명령 프롬프트를 엽니다.

  2. 샘플 디렉터리로 이동하여 RemoveInstanceStore.cmd를 실행합니다.

Dd807516.Important(ko-kr,VS.100).gif 참고:
컴퓨터에 이 샘플이 이미 설치되어 있을 수도 있습니다. 계속하기 전에 다음(기본) 디렉터리를 확인하십시오.

<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