다음을 통해 공유


자습서: ASP.NET을 사용하여 워크플로 응용 프로그램 만들기

ASP.NET에서 워크플로 응용 프로그램을 호스팅할 때 몇 가지 사항을 고려해야 합니다. 그 중에서도 특히 워크플로 런타임 만들기, 페이지 흐름 관리, 데이터 유지 및 검색이 중요합니다. 이 자습서에서는 워크플로를 실행하고 워크플로와 상호 작용하는 웹 사이트와 기본 워크플로 라이브러리를 만드는 일련의 단계를 보여 줍니다. 이 자습서에서는 다음과 같은 워크플로 항목에 대해 설명합니다.

  • 워크플로 런타임 만들기

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

  • 워크플로와 호스트 응용 프로그램 간의 통신

  • 워크플로 추적 정보 저장 및 검색

  • 워크플로 유지

  • 수동 워크플로 예약

이 응용 프로그램에서는 워크플로 런타임이 응용 프로그램 시작 시 만들어지고 Application 컬렉션에 저장됩니다. 페이지에서는 이 컬렉션을 통해 런타임을 참조하며, 이런 식으로 전체 웹 응용 프로그램에서 동일한 런타임 인스턴스를 사용합니다.

런타임이 Application_Start 이벤트 처리기에서 만들어지면 추적, 예약, 유지 및 호스트 통신에 대한 서비스가 추가됩니다. 예약 및 호스트 통신 서비스는 필요할 때 GetService를 통해 액세스되지만 추적 및 유지 서비스는 호스트 응용 프로그램과 더 이상 상호 작용하지 않고 작동합니다.

호스트 응용 프로그램과 워크플로 간 통신은 세 가지 방법으로 수행됩니다.

  • 매개 변수는 워크플로가 만들어질 때 응용 프로그램에서 워크플로로 전달됩니다. 이러한 매개 변수는 CreateWorkflow를 호출할 때 인수로 전송됩니다.

  • 메시지는 로컬 통신 서비스를 사용하여 호스트 응용 프로그램에서 실행 중인 워크플로로 전송됩니다.

  • 메시지는 추적 인프라를 통해 워크플로에서 호스트 응용 프로그램으로 간접적으로 전송됩니다. 워크플로는 TrackData 메서드를 사용하여 자신에 대한 정보를 SQL 데이터베이스에 저장합니다. 이 추적 데이터는 SqlTrackingQuery를 통해 호스트에서 검색됩니다. 상태 비저장 ASP 응용 프로그램에는 워크플로에서 생성되는 이벤트를 처리할 실행 중인 사용자 코드가 없기 때문에 이 메서드가 통신 서비스 대신 사용됩니다.

이 응용 프로그램은 기본적으로 제공되는 SqlWorkflowPersistenceService를 사용하여 유휴 워크플로를 유지합니다. 유지 서비스를 런타임에 추가하는 것 이외의 추가 사용자 코드는 워크플로를 유지하는 데 필요하지 않습니다. 런타임은 서비스가 설정되면 필요에 따라 자동으로 워크플로를 유지하고, 언로드하고, 다시 로드합니다.

ASP 응용 프로그램의 요구 사항으로 인해 응용 프로그램은 자체 프로세스에서 워크플로를 실행해야 합니다. 기본 워크플로 예약 서비스는 자체 프로세스에서 워크플로를 실행하기 때문에 사용할 수 없습니다. 대신 이 자습서에서는 ManualWorkflowSchedulerService를 사용하여 워크플로 실행을 구동합니다.

이 자습서에서 빌드할 응용 프로그램은 대출 승인 시뮬레이터입니다. 응용 프로그램의 첫 번째 부분에서는 사용자가 대출 요청을 만들 수 있도록 합니다. 대출 요청이 입력되면 새 워크플로 인스턴스가 만들어지고 시작됩니다. 시작된 워크플로는 추적 정보를 기록한 다음 유휴 상태가 되고 데이터베이스에 유지된 후 언로드됩니다. 런타임은 응용 프로그램에서 메시지를 기다립니다. 응용 프로그램의 두 번째 부분에서는 사용자가 추적 정보를 검색하여 기존 대출 요청을 볼 수 있도록 합니다. 사용자는 기존 대출 요청을 승인 또는 거부로 표시할 수도 있습니다. 이 경우 워크플로 런타임을 통해 관련 워크플로로 메시지가 전송됩니다. 런타임이 워크플로에 대한 메시지를 받으면 워크플로가 다시 로드되고 HandleExternalEventActivity를 사용하여 메시지를 받습니다. 워크플로는 워크플로 추적 인프라를 통해 대출이 승인되었는지 여부를 기록한 다음 완료됩니다.

이 자습서를 완료하려면 인터넷 정보 서비스가 설치되어 있어야 합니다. 워크플로 추적과 유지를 위해 Microsoft SQL Server나 MSDE도 필요합니다.

단원 내용

연습 1: 워크플로 프로젝트 만들기

연습 2: 웹 사이트 만들기

관련 단원

ASP.NET에서 워크플로 사용

참고 항목

기타 리소스

Windows Workflow Foundation 자습서

Footer image

Copyright © 2007 by Microsoft Corporation. All rights reserved.