다음을 통해 공유


방법: 메시징 작업을 사용하여 워크플로 서비스 만들기

이 항목에서는 메시징 작업을 사용하여 간단한 워크플로 서비스를 만드는 방법을 보여 줍니다. 이 항목에서는 서비스가 메시징 작업만으로 구성된 워크플로 서비스를 만드는 방법에 중점을 둡니다. 실제 서비스의 워크플로에는 다른 많은 작업이 포함되어 있습니다. 이 항목의 서비스에서는 문자열을 받아서 호출자에게 반환하는 Echo라는 하나의 작업을 구현합니다. 이 항목은 시리즈로 된 두 항목 중 첫 번째 항목입니다. 다음 항목 방법: 워크플로 애플리케이션에서 서비스 액세스에서는 이 항목에서 만든 서비스를 호출할 수 있는 워크플로 애플리케이션을 만드는 방법을 설명합니다.

워크플로 서비스 프로젝트를 만들려면

  1. Visual Studio 2012를 시작합니다.

  2. 파일 메뉴를 클릭하고 새로 만들기를 선택한 다음 프로젝트를 선택하여 새 프로젝트 대화 상자를 표시합니다. 설치된 템플릿 목록에서 워크플로를 선택하고 프로젝트 형식 목록에서 WCF 워크플로 서비스 애플리케이션을 선택합니다. 다음 그림과 같이 프로젝트 이름을 MyWFService로 지정하고 기본 위치를 사용합니다.

    확인 단추를 클릭하여 새 프로젝트 대화 상자를 닫습니다.

  3. 프로젝트가 생성되면 다음 그림과 같이 Service1.xamlx 파일이 디자이너에서 열립니다.

    Screenshot shows the open Service1.xamlx file in the designer.

    순차 서비스라는 작업을 마우스 오른쪽 단추로 클릭하고 삭제를 선택합니다.

워크플로 서비스를 구현하려면

  1. 화면 왼쪽에 있는 도구 상자 탭을 선택하여 도구 상자를 표시하고 압정을 클릭하여 창을 열린 상태로 유지합니다. 다음 그림과 같이 도구 상자의 메시징 섹션을 확장하여 메시징 작업과 메시징 작업 템플릿을 표시합니다.

    Screenshot that shows the toolbox with Messaging section expanded.

  2. ReceiveAndSendReply 템플릿을 워크플로 디자이너로 끌어서 놓습니다. 그러면 다음 그림과 같이 Receive 작업과 그 뒤에 SendReply 작업이 포함된 Sequence 작업이 만들어집니다.

    Screenshot that shows the ReceiveAndSendReply template.

    SendReply 작업의 Request 속성이 Receive 작업이 회신하는 Receive 작업의 이름인 SendReply로 설정됩니다.

  3. Receive 작업에서 OperationName이라는 텍스트 상자에 Echo를 입력합니다. 그러면 서비스가 구현하는 작업의 이름이 정의됩니다.

    Screenshot that shows where to specify the operation name.

  4. Receive 작업이 선택되어 있는 상태에서 속성 창이 아직 열려 있지 않은 경우 보기 메뉴를 클릭하고 속성 창을 선택하여 속성 창을 엽니다. 다음 그림과 같이 속성 창에서 CanCreateInstance가 나타날 때까지 아래로 스크롤하고 확인란을 클릭합니다. 이렇게 설정하면 메시지를 받을 때 필요한 경우 워크플로 서비스 호스트가 서비스의 새 인스턴스를 만들 수 있습니다.

    Screenshot that shows the CanCreateInstance property.

  5. 디자이너의 왼쪽 아래 모퉁이에서 Sequence 작업을 선택하고 변수 단추를 클릭합니다. 그러면 변수 편집기가 표시됩니다. 변수 만들기 링크를 클릭하여 작업에 보내진 문자열을 저장하는 변수를 추가합니다. 다음 그림과 같이 변수 이름을 msg로 지정하고 변수 형식을 문자열로 설정합니다.

    Screenshot that shows how to add a variable.

    변수 단추를 다시 클릭하여 변수 편집기를 닫습니다.

  6. Receive 작업의 콘텐츠 텍스트 상자에 있는 정의... 링크를 클릭하여 콘텐츠 정의 대화 상자를 표시합니다. 다음 그림과 같이 매개 변수 라디오 단추를 선택하고 새 매개 변수 추가 링크를 클릭한 다음 이름 텍스트 상자에 inMsg를 입력합니다. 그런 다음 형식 드롭다운 목록 상자에서 문자열을 선택하고 할당 대상 텍스트 상자에 msg를 입력합니다.

    Screenshot that shows adding Parameters content.

    그러면 받기 작업이 문자열 매개 변수를 받고 데이터가 msg 변수에 바인딩되도록 지정됩니다. 확인을 클릭하여 콘텐츠 정의 대화 상자를 닫습니다.

  7. SendReply 작업의 콘텐츠 상자에 있는 정의... 링크를 클릭하여 콘텐츠 정의 대화 상자를 표시합니다. 다음 그림과 같이 매개 변수 라디오 단추를 선택하고 새 매개 변수 추가 링크를 클릭한 다음 이름 텍스트 상자에 outMsg를 입력합니다. 그런 다음 형식 드롭다운 목록 상자에서 문자열을 선택하고 텍스트 상자에 msg를 선택합니다.

    Screenshot that shows how to add the outMsg parameter.

    그러면 SendReply 작업이 메시지 또는 메시지 계약 형식을 보내고 데이터가 msg 변수에 바인딩되도록 지정됩니다. 이 작업이 SendReply 작업이므로 이는 이 작업이 클라이언트에 다시 보내는 메시지를 채우는 데 msg의 데이터가 사용됨을 의미합니다. 확인을 클릭하여 콘텐츠 정의 대화 상자를 닫습니다.

  8. 빌드 메뉴를 클릭하고 솔루션 빌드를 선택하여 솔루션을 저장하고 빌드합니다.

워크플로 서비스 프로젝트 구성

워크플로 서비스가 완료되었으므로 이 단원에서는 워크플로 서비스 솔루션을 손쉽게 호스팅하고 실행할 수 있도록 구성하는 방법에 대해 설명합니다. 이 솔루션은 ASP.NET Development Server를 사용하여 서비스를 호스팅합니다.

프로젝트 시작 옵션을 설정하려면

  1. 솔루션 탐색기에서 MyWFService를 마우스 오른쪽 단추로 클릭하고 속성을 선택하여 프로젝트 속성 대화 상자를 표시합니다.

  2. 다음 그림과 같이 탭을 선택하고 시작 작업에서 특정 페이지를 선택하고 텍스트 상자에 Service1.xamlx를 입력합니다.

    Screenshot that shows the project properties dialog.

    그러면 ASP.NET Development Server에서 Service1.xamlx에 정의된 서비스가 호스팅됩니다.

  3. Ctrl+F5를 눌러 서비스를 시작합니다. 그러면 다음 그림과 같이 바탕 화면의 오른쪽 아래에 ASP.NET Development Server 아이콘이 표시됩니다.

    Screenshot that shows the ASP.NET Developer Server icon.

    또한 브라우저에는 해당 서비스에 대한 WCF 서비스 도움말 페이지가 표시됩니다.

    Screenshot that shows the WCF Service Help Page.

  4. 방법: 워크플로 애플리케이션에서 서비스 액세스 항목을 계속 진행하여 이 서비스를 호출하는 워크플로 클라이언트를 만듭니다.

참고 항목