다음을 통해 공유


연습: WCF-NetTcp 어댑터를 통해 사용자 지정 메시지 처리

이 연습에서 WCF(Windows Communication Foundation) 클라이언트는 포함된 이진 JPEG 이미지 데이터가 포함된 WCF 메시지를 WCF-NetTcp 어댑터를 사용하여 BizTalk 수신 위치에 제출합니다. 이진 인코딩된 JPEG 이미지는 어댑터 구성의 인바운드 메시지 본문 설정을 통해 XPath 문(Base64 노드 인코딩 포함)을 사용하여 추출됩니다. XPath 처리는 BizTalk Server 들어오는 메시지를 처리하는 데 사용하는 기본 메서드와 다릅니다. 기본 메서드에서 어댑터는 WCF 메시지의 Body 요소 전체 내용을 가져온 다음 BizTalk MessageBox 데이터베이스에 제출합니다. XPath 메시지 처리는 들어오는 WCF 메시지의 특정 부분을 추출하여 사용자 지정 BizTalk 메시지를 만듭니다. 이 샘플 XPath 처리에서는 들어오는 WCF 메시지(XML 형식)에서 SendPicture 라는 XML 요소를 찾습니다. 해당 요소를 찾은 후 XPath는 요소의 값을 이진 Base64 인코딩된 개체로 추출한 다음 BizTalk 메시지에 해당 이진 값을 배치합니다. 메시지는 MessageBox 데이터베이스에 게시된 다음 송신 포트 필터 등록을 통해 파일 송신 포트로 출력됩니다. 이 샘플에서는 오케스트레이션이 사용되지 않으며 모든 처리 과정은 BizTalk 메시징을 통해 XPath를 사용하여 수행됩니다.

WCF 어댑터는 WCF(Windows Communication Foundation) 클라이언트 및 BizTalk Server WCF 원격 서비스와 통신하는 데 사용됩니다. 따라서 오케스트레이션 및 스키마를 WCF 서비스로 게시할 수 있으며 오케스트레이션에서 외부 WCF 서비스를 사용할 수 있는 기능도 제공합니다. WCF-NetTcp 어댑터는 NetTcpBinding 바인딩을 사용합니다. 즉, 최적화된 이진 메시지 인코딩을 사용하여 TCP 전송을 의미합니다. WCF-NetTcp 어댑터는 송신 어댑터와 수신 어댑터로 구성됩니다. SOAP 보안, 안정성 및 트랜잭션 기능에 대한 모든 권한을 제공합니다.

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

  • BizTalk Server 관리 콘솔을 사용하여 MSI 파일을 가져와 송신 포트, 수신 포트 및 수신 위치를 만듭니다.

  • BizTalk Server 관리 콘솔을 사용하여 WCF 메시지의 SendPicture 요소에서 데이터를 추출하는 XPath 문을 실행하도록 WCF 수신 위치를 구성합니다.

참고

hosttrusted 요소는 수신 처리기와 연결된 호스트를 신뢰할 수 있는지 여부를 지정합니다. 이 샘플에서는 BizTalk Server Enterprise SSO(Single Sign-On Service)에 대해 신경 쓰지 않기 때문에 bindings.xml 파일의 기본 설정 false 으로 설정됩니다. SSO를 사용하면 BizTalk Server 통해 사용자 자격 증명을 전달하여 타사 애플리케이션을 BizTalk Server 통합할 수 있습니다. false 설정을 사용하면 BizTalk 메시지가 SSO 처리의 일부로 BizTalk 서비스를 통과하지 못하게 됩니다.

필수 구성 요소

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

  • 어셈블리를 빌드하고 배포 프로세스를 실행하는 컴퓨터와 샘플을 실행하는 컴퓨터 모두 Microsoft Windows Server 2008 SP2, Microsoft .NET Framework 4.5 및 Microsoft 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다운로드할 수 있습니다.

WCFCustomMessageProcessing 응용 프로그램 및 아티팩트 구성

  1. BizTalk Server 관리 콘솔에서 애플리케이션을 마우스 오른쪽 단추로 클릭하고 가져오기를 선택한 다음 MSI 파일을 선택합니다. C:\WCFCustomMessageProcessing\WCFCustomMessageProcessing.msi 파일로 이동한 다음 열기를 클릭합니다. 그러면 이 응용 프로그램에 대해 다음 아티팩트가 만들어집니다.

    • FileSP 송신 포트: C:\WCFCustomMessageProcessing\Out 로컬 파일 시스템의 위치로, 샘플 처리의 최종 출력으로 BizTalk Server JPEG 이미지 데이터를 보냅니다. BTS의 송신 포트 필터를 볼 수 있습니다. ReceivePortName = 필터 아래의 FileSP 속성 대화 상자에 구성된 NetTcpRP 입니다. 이 필터는 NetTcp 수신 포트와 연결되어 있습니다. NetTcpRP 수신 포트에서 수락된 모든 메시지는 수신 위치가 메시지에서 XPath 처리를 실행한 후 C:\WCFCustomMessageProcessing\Out 의 FileSP 송신 포트 출력 위치로 전송됩니다.

    • NetTcpRP 수신 포트: NetTcpRL 수신 위치를 논리적으로 포함하는 포트입니다.

    • NetTcpRL 수신 위치: 기본 PassThroughTransmit 파이프라인 및 WCF-NetTcp 어댑터를 사용하여 XPath 문을 실행하여 들어오는 WCF 메시지에서 JPEG 이미지 데이터를 가져옵니다.

WCFCustomMessageProcessing 응용 프로그램을 구성하는 대체 단계

  • 또는 C:\WCFCustomMessageProcessing\bindings.xml 파일을 사용하지 않고 애플리케이션을 구성하는 수동 단계는 다음과 같습니다. 앞서 설명한 바인딩 파일 가져오기 프로세스가 제대로 작동하는 경우에는 이 단계를 수행할 필요가 없습니다. 그러나 해당 내용을 확인해 두면 MSI 파일을 통해 수행되는 작업을 전반적으로 파악할 수 있습니다.

  • 단방향 수신 포트(NetTcpRP) 및 수신 위치(NetTcpRL)를 만듭니다.

    1. WCFCustomMessageProcessing 애플리케이션을 확장하고, 수신 포트를 마우스 오른쪽 단추로 클릭하고, 새로 만들기를 선택하고, 단방향 수신 포트를 선택합니다. 수신 포트 속성 대화 상자에서 이름에 를 입력 NetTcpRP 하고 확인을 클릭합니다.

    2. NetTcpRP 수신 포트를 마우스 오른쪽 단추로 클릭하고 새로 만들기를 선택한 다음 수신 위치를 선택합니다. 수신 위치 속성 대화 상자에서 이름에 를 입력 NetTcRL 합니다. 전송 섹션에서 유형 드롭다운 목록 상자를 클릭하고 드롭다운 목록에서 WCF-NetTcp를 선택한 다음 구성을 클릭합니다.

    3. 일반 탭의 주소(URI) 필드에 net.tcp://localhost/NetTcpRL/Image를 입력합니다.

    4. 보안 탭에서 보안 모드를 없음으로 설정합니다.

    5. 메시지 탭에서 인바운드 BizTalk 메시지 본문에 대한 경로 옵션을 선택하고 본문 경로 식에 를 입력 /*[local-name()="SendPicture" and namespace-uri()='http://tempuri.org/']/*[local-name()="stream"] 합니다. 노드 인코딩으로는 Base64를 선택합니다. Path 옵션은 BizTalk Server 받는 WCF 메시지의 본문이 SendPicture xmlns="http://tempuri.org/"><형식<이므로 값으로 설정됩니다.stream>actual base 64로 인코딩된 이진 이미지 데이터</스트림></SendPicture>

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

  • NetTcpRP 수신 포트에 등록되는 단방향 파일 송신 포트(FileSP)를 만듭니다.

    1. 포트 보내기를 마우스 오른쪽 단추로 클릭하고 새로 만들기를 선택한 다음 단방향 수신 포트를 선택합니다. 정적 단방향 포트를 선택합니다. 이름FileSP를 입력합니다.

    2. 전송 섹션에서 유형 드롭다운 목록 상자를 클릭하고 드롭다운 목록에서 파일을 선택한 다음 구성을 클릭합니다.

    3. 대상 폴더에서 를 입력C:\WCFCustomMessageProcessing\Out하고 확인을 클릭합니다.

    4. 필터를 클릭하고 를 선택한 BTS.ReceivePortName == NetTcpRP다음 확인을 클릭합니다.

송신 포트 구성 및 응용 프로그램 실행

  1. WCFCustomMessageProcessing 애플리케이션을 마우스 오른쪽 단추로 클릭하고 시작을 선택합니다. 그러면 NetTcpRL 수신 위치가 등록되고 FileSP 송신 포트가 시작됩니다.

  2. Visual Studio의 Client.slnC:WCFCustomMessageProcessing\Client 폴더에서 파일을 엽니다. 솔루션 탐색기 클라이언트 프로젝트를 마우스 오른쪽 단추로 클릭하고 빌드를 선택합니다.

  3. Visual Studio에서 디버그를 선택한 다음 디 버깅하지 않고 시작을 선택하여 Client.exe 애플리케이션을 실행합니다. 이미지가 BizTalk Server 제출되었다는 명령 프롬프트가 나타납니다.

  4. C:\WCFCustomMessageProcessing\Out의 송신 포트 파일 폴더에 대한 성공적인 {GUID}.jpg 파일 출력을 관찰합니다. 이는 JPEG 파일을 추출하고 파일 송신 포트에 쓰기 위한 애플리케이션 처리가 성공적으로 완료되었음을 보여줍니다.