다음을 통해 공유


연습: WCF-NetMsmq 어댑터를 통해 WCF 서비스 게시

참고

어댑터에 대한 자세한 내용은 BizTalk Server 어댑터를 참조하세요.

소개

BizTalk Server 오케스트레이션은 WCF(Windows Communication Foundation) 서비스로 게시할 수 있습니다. BizTalk 수신 위치를 통해 오케스트레이션은 WCF 클라이언트에서 호출할 수 있는 WCF 엔드포인트를 노출할 수 있습니다. BizTalk WCF 서비스 게시 마법사는 오케스트레이션을 수신 위치로 노출하는 간단한 방법을 제공합니다.

WCF-NetMsmq 어댑터는 NetMsmqBinding 바인딩을 사용하여 Microsoft 메시지 큐(MSMQ라고도 함)를 기본 전송으로 사용할 수 있도록 지원합니다. WCF 서비스의 클라이언트는 WCF-NetMSMQ 어댑터를 사용하도록 구성된 수신 위치를 사용하여 WCF 메시지를 MSMQ 큐로 보냅니다. 어댑터는 MSMQ 큐에서 WCF 메시지를 선택하고 BizTalk Server 형식으로 변환한 다음 BizTalk Server MessageBox 데이터베이스에 씁니다.

이 연습에서는 WCF 클라이언트 콘솔 애플리케이션이 WCF-NetMsmq 어댑터를 사용하여 MSMQ 메시지 큐를 통해 .NET 콘솔 애플리케이션에서 호스트되는 WCF 서비스와 통신하는 방법을 보여 줍니다. 또한 BizTalk WCF 서비스 게시 마법사를 사용하여 수신 위치에 대한 메타데이터를 게시하는 방법과, 메타데이터 게시를 지원하도록 웹 응용 프로그램을 구성하는 방법도 보여 줍니다.

이 연습을 완료하면 다음 작업을 수행하는 방법을 알 수 있습니다.

  • Visual Studio 내에서 배포 명령을 사용하여 BizTalk 어셈블리를 BizTalk Server 로컬 instance 배포합니다. 이렇게 하면 어셈블리로 채워진 BizTalk 응용 프로그램이 만들어집니다. BizTalk 어셈블리에는 BizTalk 솔루션에서 사용할 리소스 정보(예: 오케스트레이션, 파이프라인, 스키마 및 맵)가 포함되어 있습니다.

  • BizTalk Server 관리 콘솔에서 게시된 WCF 서비스를 호스트하도록 WCF-NetMsmq 수신 위치를 구성합니다.

  • BizTalk WCF 서비스 게시 마법사에서 기존 수신 위치에 대한 메타데이터를 게시하는 웹 애플리케이션을 만듭니다. 이 메타데이터는 수신 위치로 메시지를 전송하는 클라이언트에서 사용합니다.

필수 구성 요소

이 샘플의 단계를 수행하려면 환경에서 다음 필수 구성 요소를 설치해야 합니다.

  • 어셈블리를 빌드하고 배포 프로세스를 실행하는 컴퓨터와 샘플을 실행하는 컴퓨터 모두 Microsoft Windows Server, .NET Framework 및 BizTalk Server 필요합니다.

  • 어셈블리를 빌드하고 배포 프로세스를 실행하는 컴퓨터에는 Microsoft Visual Studio가 필요합니다.

  • 샘플을 실행하는 컴퓨터에는 WCF 어댑터 및 WCF 관리 도구가 필요합니다. 다음은 Microsoft BizTalk Server 설치하는 동안 설치할 수 있는 옵션입니다.

  • 관리 작업을 수행하는 데 사용하는 컴퓨터에서 BizTalk Server 관리 콘솔 내에서 BizTalk Server 애플리케이션 설정을 구성하려면 BizTalk Server Administrators 그룹의 구성원인 사용자 계정으로 실행해야 합니다. 또한 이 사용자 계정은 응용 프로그램 배포, 호스트 인스턴스 관리 및 기타 필요한 작업에 대한 로컬 관리자 그룹의 멤버여야 합니다.

  • WCF 기능이 필요한 컴퓨터에서 에서 https://go.microsoft.com/fwlink/?LinkId=135510WCF 샘플에 대한 일회성 설정 절차를 완료합니다.

  • 샘플을 실행하고 바인딩 또는 .msi 파일을 BizTalk Server 가져오는 컴퓨터에서 호스트가 신뢰할 수 있는 호스트가 아니거나 가져오기가 실패하는지 확인합니다.

  • 연습 코드를 다운로드하여 컴퓨터에 추출해야 합니다. 이 연습은 전체 WCF 어댑터 연습 패키지의 일부입니다. 의 BizTalk Server 개발자 센터에서 https://go.microsoft.com/fwlink/?LinkId=194140파일WCFAdapterWalkthroughs.exe다운로드할 수 있습니다.

BizTalk 솔루션 BizTalkApp 빌드 및 배포

  1. C:\WCFNetMsmqAdapterPublishing에 WCFNetMsmqAdapterPublishing.exe 추출합니다.

  2. Visual Studio에서 WCFNetMsmqAdapterPublishing.sln 파일을 엽니다.

  3. 솔루션 탐색기 BizTalkApp을 확장한 다음 OrderProcess.odx를 열어 검토합니다. 샘플 오케스트레이션은 주문 요청 메시지를 받아 단순히 주문 응답 메시지를 반환합니다.

  4. BizTalkApp 어셈블리는 GAC에 설치되어야 하므로 배포 프로세스를 완료하려면 강력한 이름 키 파일이 필요합니다. BizTalkApp 프로젝트를 마우스 오른쪽 단추로 클릭한 다음 속성을 클릭합니다. 속성 페이지에서 서명을 클릭하고 어셈블리 서명을 선택합니다. 강력한 이름 키 파일 선택 드롭다운 목록에서 아래쪽 화살표를 클릭하고 새로> 만들기를 클릭하고<키 파일 이름 텍스트 상자에 를 입력 keyfile.snk 합니다. 암호로 키 파일 보호의 선택을 취소한 다음 확인을 클릭합니다.

  5. 배포 탭을 클릭한 다음 LOCALHOST 외에 BizTalk Management 데이터베이스에 다른 데이터베이스 서버를 사용하는 경우 서버 속성을 변경합니다. BizTalk 애플리케이션 값이 WCFNetMsmqAdapterPublishing으로 설정되어 있는지 확인합니다. 전역 어셈블리 캐시에 설치가 True로 설정되어 있는지 확인합니다.

  6. 솔루션 탐색기 BizTalkApp 프로젝트를 마우스 오른쪽 단추로 클릭한 다음 다시 빌드를 클릭합니다.

  7. 솔루션 탐색기 BizTalkApp을 마우스 오른쪽 단추로 클릭한 다음 배포를 클릭합니다.

애플리케이션 구성

  1. 다음 방법을 통해 MSMQ(Microsoft 메시지 큐) 구성 요소가 컴퓨터에 설치되어 있는지 확인합니다.

    1. 시작을 클릭하고 컴퓨터를 마우스 오른쪽 단추로 클릭한 다음 관리를 클릭하여 서버 관리자를 엽니다.

    2. 기능 노드를 확장 합니다 . 메시지 큐가 설치되어 있지 않으면 기능을 마우스 오른쪽 단추로 클릭하고 기능 추가를 선택합니다. 메시지 큐를 선택하고 다음을 클릭한 다음 설치를 클릭하여 해당 시스템에 MSMQ를 설치합니다.

  2. 다음 방법을 통해 WCF-NetMsmq 어댑터에서 사용할 MSMQ 메시지 큐 서비스가 컴퓨터에서 시작되었는지 확인합니다.

    1. 시작을 클릭하고 관리 도구를 가리킨 다음 서비스를 클릭합니다.

    2. 서비스에서메시지 큐 서비스의 상태가시작되었는지 확인합니다. 서비스가 시작되지 않은 경우 메시지 큐를 마우스 오른쪽 단추로 클릭한 다음 시작을 클릭합니다.

  3. 수신 위치가 WCF-NetMsmq 어댑터가 클라이언트에서 들어오는 WCF 메시지를 선택하는 데 사용하는 대상 큐를 만듭니다.

    1. 시작을 클릭하고 관리 도구를 가리킨 다음 컴퓨터 관리를 클릭합니다.

    2. 컴퓨터 관리에서 서비스 및 애플리케이션, 메시지 큐를 차례로 확장하고 프라이빗 큐를 마우스 오른쪽 단추로 클릭한 다음 새로 만들기를 가리키고 프라이빗 큐를 클릭합니다.

    3. 새 프라이빗 큐 대화 상자에서 큐 이름 텍스트 상자를 입력 WCFNetMsmqAdapterPublishing 하고 트랜잭션 검사 상자를 선택한 다음 확인을 클릭합니다.

  4. 다음과 같은 방법으로 샘플 응용 프로그램에 대한 WCF-NetMsmq 수신 위치를 만듭니다.

    1. 시작을 클릭하고 모든 프로그램을 가리킨 다음 Microsoft BizTalk Server 20xx를 가리킨 다음 BizTalk Server 관리를 클릭합니다.

    2. BizTalk Server 관리 콘솔에서 BizTalk 그룹, 애플리케이션, WCFNetMsmqAdapterPublishing을 차례로 확장하고 수신 포트를 마우스 오른쪽 단추로 클릭하고 새로 만들기를 가리킨 다음 단방향 수신 포트를 클릭합니다.

    3. 수신 포트 속성 대화 상자의 이름 텍스트 상자에 를 입력WCFNetMsmqAdapterPublishing.ReceivePurchaseOrder한 다음 확인을 클릭합니다.

    4. BizTalk Server 관리 콘솔에서 WCFNetMsmqAdapterPublishing.ReceivePurchaseOrder를 마우스 오른쪽 단추로 클릭하고 새로 만들기를 가리킨 다음 수신 위치를 클릭합니다.

    5. 수신 위치 속성 대화 상자의 이름 텍스트 상자에 을 입력합니다WCFNetMsmqAdapterPublishing.ReceivePurchaseOrder.NetMsmq.

    6. 수신 위치 속성 대화 상자의 형식 옆의 전송 섹션에서 드롭다운 목록에서 WCF-NetMsmq를 선택한 다음 구성을 클릭합니다.

    7. WCF-NetMsmq 전송 속성 대화 상자의 일반 탭에 있는 주소(URI) 텍스트 상자에 를 입력합니다net.msmq://localhost/private/WCFNetMsmqAdapterPublishing.

    8. WCF-NetMsmq 전송 속성 대화 상자의 바인딩 탭에서 트랜잭션 검사 상자가 선택되어 있는지 확인합니다.

      참고

      대상 큐를 트랜잭션 큐로 만들었으므로 이 확인란을 선택해야 합니다. 이 확인란을 선택하지 않으면 수신 위치의 트랜잭션 요구 사항과 기본 MSMQ 큐의 트랜잭션 요구 사항 간에 차이가 발생하므로 수신 위치가 사용하도록 설정되지 않습니다.

    9. WCF-NetMsmq 전송 속성 대화 상자의 보안 탭에서 보안 모드 드롭다운 목록에서 없음을 선택합니다.

      참고

      이 연습에서는 컴퓨터에서 Active Directory 통합을 사용하지 않도록 설정된 상태에서 MSMQ가 설치되어 있다고 가정합니다. MSMQ 인증 모드 속성의 기본값인 WindowsDomain은 Active Directory 통합을 사용하는 경우 사용할 수 있습니다.

    10. 수신 위치 속성 대화 상자에서 확인을 클릭합니다.

  5. 샘플 응용 프로그램에 대해 파일 송신 포트를 만듭니다. 이 포트를 사용하여 서비스의 기본 오케스트레이션에서 구매 주문의 응답을 라우팅합니다.

    1. BizTalk Server 관리 콘솔에서 WCFNetMsmqAdapterPublishing을 확장하고 포트 보내기를 마우스 오른쪽 단추로 클릭하고 새로 만들기를 가리킨 다음 정적 단방향 송신 포트를 클릭합니다.

    2. 송신 포트 속성 대화 상자의 이름 텍스트 상자에 를 입력합니다WCFNetMsmqAdapterPublishing.SendPurchaseOrder.File.

    3. 송신 포트 속성 대화 상자의 형식 옆의 전송 섹션에서 드롭다운 목록에서 FILE을 선택한 다음 구성을 클릭합니다.

    4. 파일 전송 속성 대화 상자의 일반 탭에 있는 대상 폴더 텍스트 상자에 를 입력C:\WCFNetMsmqAdapterPublishing\Out한 다음 확인을 클릭합니다.

    5. 송신 포트 속성 대화 상자에서 확인을 클릭합니다.

  6. 샘플 응용 프로그램에 대한 호스트 이름과 바인딩을 다음과 같이 지정합니다.

    1. BizTalk Server 관리 콘솔에서 WCFNetMsmqAdapterPublishing을 확장하고, 오케스트레이션을 확장하고, 샘플 오케스트레이션을 마우스 오른쪽 단추로 클릭하고, 속성을 클릭하고, 바인딩을 클릭한 다음, 호스트BizTalkServerApplication 또는 다른 적절한 호스트로 설정합니다.

    2. 오케스트레이션 속성 대화 상자의 PurchaseOrderRequestPort에 대한 수신 포트 드롭다운 목록에서 WCFNetMsmqAdapterPublishing.ReceivePurchaseOrder를 선택합니다.

    3. 오케스트레이션 속성 대화 상자의 PurchaseOrderResponsePort에 대한 송신 포트/송신 포트 그룹 드롭다운 목록에서 WCFNetMsmqAdapterPublishing.SendPurchaseOrder.File을 선택합니다.

    4. 오케스트레이션 속성 대화 상자에서 확인을 클릭하여 구성을 저장합니다.

WCF-NetMsmq 수신 위치에 대한 메타데이터 게시

  1. 시작을 클릭하고 모든 프로그램을 가리킨 다음 Microsoft BizTalk Server 20xx를 가리킨 다음 BizTalk WCF 서비스 게시 마법사를 클릭합니다.

  2. BizTalk WCF 서비스 게시 마법사 시작 페이지에서 다음을 클릭합니다.

  3. WCF 서비스 유형 페이지에서 MEX(메타데이터 전용 엔드포인트) 검사 상자를 선택하여 WCFNetMsmq 수신 위치에 대한 메타데이터를 게시합니다. 수신 위치에 대한 메타데이터 게시 드롭다운 목록에서 WCFNetMsmqAdapterPublishing.ReceivePurchaseOrder.NetMsmq를 선택하고 다음을 클릭합니다.

  4. WCF 서비스 만들기 페이지에서 BizTalk 오케스트레이션을 WCF 서비스로 게시를 선택하고 다음을 클릭합니다.

  5. BizTalk 어셈블리 페이지의 BizTalk 어셈블리 파일(*.dll) 텍스트 상자에서 찾아보기를 클릭하여 C:\WCFNetMsmqAdapterPublishing\BizTalkApp\bin\Development 폴더로 이동하고 게시할 샘플 오케스트레이션이 포함된 어셈블리를 두 번 클릭한 다음 다음을 클릭합니다.

  6. 오케스트레이션 및 포트 페이지에서 포트: PurchaseOrderRequestPort 노드가 페이지에서 선택되어 있는지 확인하고 다음을 클릭합니다.

    수신 포트의 MEX가 게시되고 클라이언트에서 수신 위치로 메시지를 전송하는 데 사용됩니다.

  7. WCF 서비스 속성 페이지의 WCF 서비스 대상 네임스페이스 텍스트 상자에 이 게시된 WCF 서비스를 사용할 URI를 입력하고 다음을 클릭합니다. 이 연습에서는 기본 URI http://tempuri.org/를 그대로 둡니다.

  8. WCF 서비스 위치 페이지에서 다음 작업을 수행하여 만들 WCF 서비스의 위치를 지정하고 다음을 클릭합니다.

    1. 위치 텍스트 상자에 WCF 서비스가 실행되는 웹 디렉터리 이름을 입력하거나 찾아보기를 클릭하고 웹 디렉터리를 선택합니다. 이 연습에서는 위치 텍스트 상자에 기본 위치(http://localhost/<BizTalk 어셈블리 이름>)를 그대로 둡니다.

    2. WCF 서비스에 대한 익명 액세스 허용 옵션을 선택합니다. 이 옵션은 생성된 가상 디렉터리에 대한 익명 액세스를 추가합니다. 이 마법사에서 만들 웹 응용 프로그램에 대한 익명 인증을 허용하려면 이 옵션을 선택해야 합니다.

  9. WCF 서비스 요약 페이지에서 만들기를 클릭하여 WCF 서비스를 만듭니다.

  10. BizTalk WCF 서비스 게시 마법사 완료 페이지에서 마침을 클릭합니다.

게시된 메타데이터 서비스를 호스트하는 웹 애플리케이션 구성

  1. 명령 프롬프트를 열고, BizTalk WCF 서비스 게시 마법사에서 WCF 서비스를 만든 C:\inetpub\wwwroot\Microsoft.Samples.BizTalk.WCF.NetMsmqPublishing.BizTalkApp 폴더로 이동합니다. 메모장을 사용하여 Web.config 파일을 엽니다.

  2. 메모장에서 system.web> 요소 내에< 다음 줄을 추가합니다.

    <trust level="Full" originUrl="" />
    

    참고

    이 설정은 선택 사항입니다. 게시된 WCF 서비스를 호스트하는 ASP.NET 애플리케이션에 운영 체제 보안이 적용되는 모든 리소스에 대한 액세스 권한을 부여합니다.

  3. 다음과 같이 인터넷 Explorer 사용하여 게시된 WCF 서비스를 테스트합니다.

    1. 시작을 클릭하고 관리자 도구를 가리킨 다음 IIS(인터넷 정보 서비스) 관리자를 클릭합니다.

    2. IIS 관리자에서 이 서비스를 실행할 응용 프로그램 풀(올바른 BizTalk 데이터베이스 사용 권한 포함)을 만듭니다. 애플리케이션 풀을 마우스 오른쪽 단추로 클릭하고 애플리케이션 풀 추가를 클릭하고 애플리케이션 풀의 이름을 입력한 다음 확인을 클릭합니다.

    3. 애플리케이션 풀을 확장하고 방금 만든 애플리케이션 풀을 마우스 오른쪽 단추로 클릭한 다음 고급 설정을 선택합니다. 프로세스 모델 섹션에서 ID 필드 아래의 BizTalk Server 데이터베이스에 액세스할 수 있는 계정을 입력합니다.

    4. 웹 사이트를 확장하고 기본 웹 사이트를 확장한 다음 BizTalk WCF 서비스 게시 마법사에서 만든 웹 애플리케이션을 확장합니다.

    5. IIS 관리자의 가운데 창에서 콘텐츠 보기를 클릭하여 애플리케이션에 대한 파일을 표시합니다.

    6. BizTalk WCF 서비스 게시 마법사에서 만든 Microsoft_Samples_BizTalk_WCF_NetMsmqPublishing_BizTalkApp_OrderProcess_PurchaseOrderRequestPort.svc 서비스 파일을 마우스 오른쪽 단추로 클릭한 다음 찾아보기를 클릭합니다. 그러면 인터넷 Explorer 열리고 WCF 서비스의 instance 실행 중임을 나타내는 BizTalkServerInstance 서비스 페이지가 표시됩니다. 페이지에는 프록시 코드 및 서비스에 대한 클라이언트 애플리케이션을 만드는 데 사용할 수 있는 구성 파일을 검색하기 위해 svcutil.exe(서비스 메타데이터 도구) 또는 Visual Studio 내에서 복사하여 사용할 수 있는 전체 WSDL 주소가 표시됩니다.

    7. 이전 단계에서 인터넷 Explorer 보여 주는 BizTalkServerInstance Service 페이지의 전체 WSDL 주소를 사용하여 명령줄을 클립보드에 복사합니다.

      svcutil.exe http://localhost/Microsoft.Samples.BizTalk.WCF.NetMsmqPublishing.BizTalkApp/Microsoft_Samples_BizTalk_WCF_NetMsmqPublishing_BizTalkApp_OrderProcess_PurchaseOrderRequestPort.svc?wsdl

클라이언트 애플리케이션 빌드

  1. 관리자 권한으로 Visual Studio 명령 프롬프트를 열고 C:\WCFNetMsmqAdapterPublishing\WCFClient 폴더로 이동합니다. 이 폴더에 프록시 클래스 및 응용 프로그램 구성 파일을 배치합니다.

  2. 이전 절차에서 복사했던 전체 WSDL 주소가 포함된 전체 svcutil.exe 명령줄을 붙여 넣은 다음 Enter 키를 누릅니다. 그러면 프록시 클래스인 BizTalkServiceInstance.cs 및 애플리케이션 구성 파일이 output.config. 마지막 섹션에서 사용할 수 있도록 명령 프롬프트 창을 열어 두세요.

  3. Visual Studio의 솔루션 탐색기 WCFClient를 마우스 오른쪽 단추로 클릭하고 추가를 가리킨 다음 기존 항목을 클릭합니다.

  4. 기존 항목 추가 대화 상자에서 WCFClient 폴더로 이동하고 형식 파일 드롭다운 목록에서 모든 파일(*.*)을 선택하고 BizTalkServiceInstance.csoutput.config 파일을 선택한 다음 추가를 클릭합니다.

  5. WCFClient를 확장하고output.config마우스 오른쪽 단추로 클릭하고 이름 바꾸기를 클릭한 다음 새 이름으로 를 입력 App.config 합니다.

  6. Program.cs를 두 번 클릭하여 svcutil.exe 생성된 프록시 클래스를 사용하여 게시된 WCF 서비스를 호출하는 방법을 검토합니다.

  7. 참조를 확장한 다음 WCFClient 프로젝트가 System.ServiceModel.dll 참조되었는지 확인합니다.

  8. WCFClient 프로젝트를 마우스 오른쪽 단추로 클릭하고 빌드를 선택합니다. Visual Studio를 열어 두고 다음 섹션으로 이동합니다.

WCF-NetMsmq 어댑터를 사용하여 샘플 솔루션 테스트

  1. BizTalk Server 관리 콘솔에서 WCFNetMsmqAdapterPublishing 애플리케이션을 마우스 오른쪽 단추로 클릭한 다음 시작을 클릭합니다. 시작 대화 상자에서 시작을 클릭합니다.

  2. BizTalk Server 관리 콘솔에서 플랫폼 설정, 호스트 인스턴스, BizTalkServerApplication 또는 다른 적절한 호스트 instance 마우스 오른쪽 단추로 클릭한 다음 다시 시작을 클릭합니다. 이 단계는 필수 사항이 아니나, 이 지점까지 샘플이 올바르게 작동하는지 확인하려면 수행하는 것이 좋습니다.

  3. Visual Studio의 디버그 메뉴에서 디버깅하지 않고 시작을 클릭하여 WCFClient 애플리케이션을 실행합니다. 그러면 WCF-NetMsmq 수신 위치로 샘플 메시지를 보냅니다. 메시지를 보냈음을 알리는 아래의 출력 메시지가 표시됩니다.

    WCF-NetMsmq 수신 위치에서 전송 작업을 호출하고 있습니다.

    WCF 클라이언트 응용 프로그램을 닫으려면 아무 키나 누르십시오.

  4. WCFClient 응용 프로그램을 닫으려면 아무 키나 누르십시오.

  5. Visual Studio 명령 프롬프트에서 C:\WCFNetMsmqAdapterPublishing\Out 폴더로 이동한 다음, WCFClient 애플리케이션이 다시 보낸 응답 메시지가 있는지 확인합니다.

  6. {GUID}.xml 파일을 두 번 클릭하여 인터넷 Explorer 열고 서비스에서 처리한 OrderID 값을 봅니다.

참고 항목

WCF 수신 어댑터에 대한 WCF-NetMsmq 수신 위치WCF 어댑터 연습 게시 서비스 메타데이터 구성