연습: WCF-BasicHttp 어댑터를 통해 WCF 서비스 사용
참고
어댑터에 대한 자세한 내용은 BizTalk Server 어댑터를 참조하세요.
소개
이 연습에서는 BizTalk 메시징 및 WCF-BasicHttp 송신 어댑터를 사용하여 IIS(인터넷 정보 서비스) 내에서 호스트되는 WCF(Windows Communication Foundation) 서비스를 사용합니다. 이 어댑터는 BasicHttpBinding 바인딩을 사용하여 이전 버전의 웹 서비스와 호환되는 전송/프로토콜 스택 구현을 제공하여 Microsoft BizTalk Server 및 WCF 기능 간의 브리지 역할을 합니다. 오케스트레이션은 WCF 어댑터를 사용하여 WCF 서비스를 호출하고 논리적 비즈니스 처리 내에서 해당 기능을 활용하는 송신 포트에 바인딩할 수 있습니다.
WCF-BasicHttp 어댑터는 송신 어댑터와 수신 어댑터로 구성되어 있습니다. 이 샘플에서는 이 어댑터의 송신 쪽만 사용하여 HTTP 프로토콜을 통해 WCF 서비스에 WCF 서비스 요청을 수행합니다. Solicit-Response 송신 포트의 경우 송신 어댑터는 WCF 서비스로 보내고 결과 응답을 다시 받습니다. 반대로 WCF 수신 어댑터를 사용하면 BizTalk Server 오케스트레이션을 WCF 클라이언트 애플리케이션에서 외부에서 게시하고 호출할 수 있습니다. 자세한 내용은 게시 WCF 서비스를 참조하세요 .
이 연습을 완료하면 다음 작업을 수행하는 방법을 알 수 있습니다.
Microsoft Visual Studio 내에서 배포 명령을 사용하여 BizTalk Server 솔루션과 WCF 서비스가 포함된 어셈블리를 BizTalk Server 로컬 instance 배포합니다. 이렇게 하면 어셈블리로 채워진 BizTalk 응용 프로그램이 만들어집니다.
Visual Studio 내에서 BizTalk WCF 서비스 사용 마법사를 사용하여 WCF 서비스를 사용하는 데 필요한 BizTalk Server 스키마 및 형식을 생성합니다. 사용하여 논리 포트에 바인딩할 빈 오케스트레이션도 생성됩니다. 이 오케스트레이션은 스키마 및 형식과 함께 컴파일 및 배포됩니다. 그러나 오케스트레이션 워크플로 처리는 여기서 비어 있으며 이 샘플에서는 순수 BizTalk Server 메시징 시나리오에 불과하기 때문에 사용되지 않습니다.
BizTalk Server 관리 콘솔에서 WCF-BasicHttp 송신 포트를 사용하여 콘텐츠 기반 라우팅을 구성합니다. 대상 WCF 서비스가 수신할 것으로 예상되는 SOAPAction 헤더를 구성합니다.
BizTalk Server 관리 콘솔에서 WCF 서비스가 출력 폴더로 보낼 수 있는 SOAP 오류 메시지를 라우팅하도록 필터 식을 구성합니다.
IIS(인터넷 정보 서비스) 관리자 내에서 해당 메타데이터를 노출하도록 WCF 서비스를 호스팅하는 웹 애플리케이션을 구성합니다. 사용하도록 설정되면 BizTalk WCF 서비스 사용 마법사 는 이 메타데이터를 가져와 WCF 서비스에 액세스하기 위한 형식 및 스키마를 생성할 수 있습니다.
필수 구성 요소
이 샘플의 단계를 수행하려면 환경에서 다음 필수 구성 요소를 설치해야 합니다.
어셈블리를 빌드하고 배포 프로세스를 실행하는 컴퓨터와 샘플을 실행하는 컴퓨터 모두 Microsoft Windows Server 2008 SP2, Microsoft .NET Framework 4.5 및 Microsoft BizTalk Server 필요합니다.
어셈블리를 빌드하고 배포 프로세스를 실행하는 컴퓨터에는 Microsoft Visual Studio가 필요합니다.
샘플을 실행하는 컴퓨터에는 WCF 어댑터 및 WCF 관리 도구가 필요합니다. 다음은 Microsoft BizTalk Server 설치하는 동안 설치할 수 있는 옵션입니다.
관리 작업을 수행하는 데 사용하는 컴퓨터에서 BizTalk Server Administrators 그룹의 구성원인 사용자 계정으로 를 실행하여 BizTalk Server 관리 콘솔 내에서 BizTalk Server 애플리케이션 설정을 구성해야 합니다. 또한 이 사용자 계정은 응용 프로그램 배포, 호스트 인스턴스 관리 및 기타 필요한 작업에 대한 로컬 관리자 그룹의 멤버여야 합니다.
WCF 기능이 필요한 컴퓨터에서 Windows Communication Foundation 샘플에 대한 일회성 설치 절차에서 WCF 샘플 에 대한 일회성 설치 절차를 완료합니다.
샘플을 실행하고 바인딩 또는 .msi 파일을 BizTalk Server 가져오는 컴퓨터에서 호스트가 신뢰할 수 있는 호스트가 아니거나 가져오기가 실패하는지 확인합니다.
연습 코드를 다운로드하여 컴퓨터에 추출해야 합니다. 이 연습은 전체 WCF 어댑터 연습 패키지의 일부입니다. 의 BizTalk Server 개발자 센터에서 https://go.microsoft.com/fwlink/?LinkId=194140파일WCFAdapterWalkthroughs.exe다운로드할 수 있습니다.
샘플 WCF 서비스 배포
자체 추출 WCFBasicHttpSendAdapter.exe 파일을 실행하고 C:\WCFBasicHttpSendAdapter 폴더에 파일을 추출합니다.
Visual Studio에서 C:\WCFBasicHttpSendAdapter\WCFBasicHttpSendAdapter.sln 을 엽니다.
솔루션 탐색기 BasicHttpWCFServiceConsuming 프로젝트를 확장합니다. 이 프로젝트는 송신 포트에서 호출되는 WCF 서비스입니다. IIS(인터넷 정보 서비스)를 사용하여 관리되는 호스트 환경에서 호스팅됩니다. IIS 호스팅에서는 메시지 기반 활성화가 사용되어 서비스 활성화와 유효 기간을 관리합니다. App_Code 확장한 다음 OrderProcess.cs를 열어 검토합니다. 이 WCF 서비스는 OrderRequest 메서드를 통해 주문 요청 메시지를 받습니다. OrderProcess.cs 파일에는 WCF 서비스의 인터페이스 무시 및 구현이 포함되어 있습니다. OrderResponse 메서드를 통해 주문 응답 메시지를 반환하기만 하면 됩니다.
OrderProcess.svc 파일을 검토합니다. 이 파일에는 IIS에 클라이언트 응용 프로그램 서비스 활성화를 지시하는 데 사용되는 한 줄만 포함되어 있습니다. 서비스를 호스트하는 데 사용되는 @ServiceHost 특성은 WCF 프로그래밍 모델 내에서 확장성 지점입니다. 팩터리 패턴은 ServiceHostFactory를 사용하여 들어오는 요청을 처리하기 위해 WCF 서비스의 instance ServiceHost의 instance 만듭니다. 이 instance 인스턴스화는 서비스에서 하나의 스레드, 여러 스레드 또는 재진입 호출을 지원하는지 여부를 결정하는 ServiceBehaviorAttribute.ConcurrencyMode 속성을 기반으로 합니다. 인스턴스화는 또한 ServiceBehavior.InstanceMode 속성에 의해 결정됩니다. 이 속성은 하나의 instance 모든 호출자(싱글톤)를 제공할지, 호출당 하나의 instance 생성될지(상태 비저장) 또는 각 세션에 대해 하나의 instance 생성되는지(상태 저장)를 결정합니다.
<%@ServiceHost language=c# Debug="true" Service="Microsoft.Samples.BizTalk.WCF.BasicHttpSendAdapter.BasicHttpWcfServiceConsuming.OrderProcessServiceType" %>
Visual Studio의 솔루션 탐색기 검토할Web.config 엽니다. IIS에서 호스트되는 경우 WCF 서비스는 콘솔 애플리케이션에서 호스트되는 app.config 파일 대신 Web.config 파일을 사용하여 구성됩니다.
BizTalk WCF 서비스 사용 마법사가 서비스에 대한 메타데이터를 사용할 수 있도록 serviceMetaData> 요소의 <httpGetEnabled 특성이 로 설정되어
true
있는지 확인합니다.보안> 요소의 모드 특성이 < 없음으로 설정되어 있는지 확인합니다. 이 연습에서는 None 보안 모드를 사용하므로 익명 액세스를 허용하도록 이 서비스를 호스팅하는 웹 애플리케이션을 구성해야 합니다.
Microsoft.Samples.BizTalk.WCF.BasicHttpSendAdapter.BasicHttpWcfServiceConsuming 어셈블리를 GAC에 설치해야 하므로 배포 프로세스를 완료하려면 강력한 이름 키 파일이 필요합니다. BasicHttpWcfServiceConsuming 프로젝트를 마우스 오른쪽 단추로 클릭한 다음 속성을 클릭합니다. 속성 페이지에서 서명을 클릭하고 어셈블리 서명을 선택합니다. 강력한 이름 키 파일 선택 드롭다운 목록에서 아래쪽 화살표를 클릭하고 새로> 만들기를 클릭한< 다음 키 파일 이름 텍스트 상자에 를 입력
keyfile.snk
합니다. 암호로 내 키 파일 보호의 선택을 취소한 다음 확인을 클릭합니다.솔루션 탐색기 기본HttpWcfServiceConsuming을 마우스 오른쪽 단추로 클릭한 다음 다시 빌드를 클릭합니다.
Windows Explorer 사용하여 C:\WCFBasicHttpSendAdapter\BasicHttpWCFServiceConsuming의 내용을 C:\InetPub\wwwroot 폴더에 복사합니다.
다음과 같이 WCF 서비스를 호스트하도록 웹 애플리케이션을 구성합니다.
시작을 클릭하고 관리자 도구를 가리킨 다음 IIS(인터넷 정보 서비스) 관리자를 클릭합니다.
이 서비스를 실행할 응용 프로그램 풀을 만듭니다. 애플리케이션 풀을 마우스 오른쪽 단추로 클릭하고 애플리케이션 풀 추가...를 클릭하고 애플리케이션 풀의 이름을 입력한 다음 확인을 클릭합니다.
애플리케이션 풀을 확장하고 방금 만든 애플리케이션 풀을 마우스 오른쪽 단추로 클릭한 다음 고급 설정을 선택합니다. 프로세스 모델 섹션에서 ID 필드 아래의 BizTalk Server 데이터베이스에 액세스할 수 있는 계정을 입력합니다.
사이트를 확장하고 기본 웹 사이트를 확장하고 BasicHttpWCFServiceConsuming을 마우스 오른쪽 단추로 클릭한 다음 애플리케이션으로 변환을 클릭하여 이 WCF 서비스에 대한 웹 애플리케이션을 만듭니다.
애플리케이션으로 변환 대화 상자에서 선택을 클릭하여 이전에 만든 애플리케이션 풀을 선택한 다음 확인을 클릭합니다.
기능 보기에서 인증 아이콘을 클릭하고 익명 인증 옵션이 사용하도록 설정되어 있는지 확인합니다. 이 기능은 없음 보안 모드를 사용하는 WCF 서비스를 지원합니다.
게시된 WCF 서비스를 다음과 같이 테스트합니다.
IIS 관리자에서 웹 사이트를 확장한 다음 BasicHttpWCFServiceConsuming을 확장합니다.
IIS 관리자의 오른쪽 창에서 OrderProcess.svc를 마우스 오른쪽 단추로 클릭한 다음 찾아보기를 클릭합니다. 그러면 인터넷 Explorer 열리고 실행 중인 WCF 서비스를 성공적으로 생성했음을 나타내는 OrderProcessServiceType Service 페이지가 표시됩니다. 페이지에는 프록시 코드를 만드는 서비스 메타데이터 도구(svcutil.exe)를 통해 복사하고 사용할 수 있는 전체 WSDL 주소와 서비스용 클라이언트 응용 프로그램을 개발하기 위해 사용할 수 있는 구성 파일도 포함되어 있습니다.
시스템 클립보드에 전체 WSDL 주소를 복사합니다. "svcutil.exe" 부분을 복사하지 마세요.
http://localhost/BasicHttpWcfServiceConsuming/OrderProcess.svc?wsdl
샘플 BizTalk 애플리케이션에 WCF-BasicHttp 어댑터에 대한 스키마 및 형식 추가
어댑터는 WCF 서비스를 호출하므로 메타데이터를 사용하여 해당 서비스를 호출하는 방법에 대한 스키마 및 형식의 정보가 필요합니다. BizTalkApp 은 WCF 서비스를 사용하는 아티팩트입니다. Visual Studio의 솔루션 탐색기 BizTalkApp을 마우스 오른쪽 단추로 클릭하고 추가를 클릭한 다음 생성된 항목 추가를 클릭합니다.
생성된 항목 추가 대화 상자의 템플릿 섹션에서 WCF 서비스 사용을 선택하고 추가를 클릭합니다.
BizTalk WCF 서비스 사용 마법사 시작 페이지에서 다음을 클릭합니다. 이 마법사는 메타데이터를 읽고 스키마와 유형을 만듭니다.
메타데이터 원본 페이지에서 MEX(메타데이터 교환) 엔드포인트 옵션을 선택하여 이전 절차에서 클립보드로 복사한 URL의 메타데이터를 사용하고 다음을 클릭합니다.
메타데이터 엔드포인트 페이지에서 이전 절차에서 복사한 전체 WSDL 주소를 메타데이터 주소 드롭다운 목록에 붙여넣은 다음 가져오기를 클릭하여 샘플 WCF 서비스에 대한 메타데이터 문서를 가져옵니다. 메타데이터를 가져오면 다음 단추를 사용할 수 있습니다. 다음 을 클릭하여 계속합니다.
WCF 서비스 메타데이터 가져오기 요약 페이지에서 설정을 검토합니다. 이 대화 상자에는 가져올 메타데이터의 네임스페이스, XSD 및 WSDL 요약이 표시됩니다. 또한 가져오기 프로세스 중 오케스트레이션(.odx) 바인딩(.xml) 및 스키마(.xsd) 파일이 기록되는 위치도 표시됩니다. 가져오기를 클릭하여 샘플 WCF 서비스를 사용하는 데 사용할 BizTalk 아티팩트 및 형식을 만듭니다.
BizTalk WCF 서비스 사용 마법사 완료 페이지에서 마침을 클릭합니다.
Visual Studio의 솔루션 탐색기 BizTalk WCF 서비스 사용 마법사는 다음 파일을 생성합니다.
오케스트레이션 파일 OrderProcessServiceType.odx입니다. 이 오케스트레이션에는 워크플로 단계가 없습니다. 그러나 에 를 추가하고 논리 포트에 바인딩하여 WCF 서비스를 사용할 수 있습니다. 포트 유형 및 다중 파트 메시지 유형과 같은 중요한 BizTalk 유형이 포함되어 이 샘플에서 사용됩니다. 이 정보를 보려면 OrderProcessServiceType.odx 오케스트레이션을 두 번 클릭합니다. 보기를 클릭하고 다른 창을 클릭한 다음 오케스트레이션 보기를 클릭합니다. 형식을 확장하고 포트 형식을 확장한 다음 IOrderProcess를 확장합니다. Submit 메서드가 표시됩니다. 해당 메서드를 확장하면 OrderRequest 및 OrderResponse 포트 형식이 표시됩니다. 각 포트 유형을 클릭하고 속성 브라우저에서 해당 설명 필드를 보고 다른 WSDL 입력 및 출력 메시지를 확인합니다. 다중 파트 메시지 유형을 클릭하고 OrderRequest 및 OrderResponse 다중 파트 메시지 유형을 봅니다. 설명 필드를 클릭하고 각 메시지 유형에 대한 WDSL 메시지 이름을 봅니다.
두 개의 스키마 파일이 생성됩니다. 첫 번째 스키마 파일(OrderProcessServiceType_biztalk_WCF_basichttpsendadapter_basichttpWCFserviceconsuming.xsd)은 샘플 WCF 서비스에서 사용하는 메시지 유형을 정의합니다. OrderRequest 및 OrderResponse 호출 모두에서 OrderID 필드를 사용합니다.
두 번째 스키마 파일(OrderProcessServiceType_schemas_microsoft_com_2003_10_Serialization.xsd)은 네임스페이스의
http://schemas.microsoft.com/2003/10/Serialization/
형식, 요소 및 특성에 대해 DataContractSerializer에서 내보냅니다.두 개의 바인딩 파일이 생성되며 나중에 BizTalk 애플리케이션을 만드는 데 사용됩니다. OrderProcessServiceType.BindingInfo.xml 및 OrderProcessServiceType_Custom.BindingInfo.xml. 일반적으로 사용자 지정이 아닌 바인딩 파일을 사용합니다. 하지만 사용자 지정 바인딩 요소를 보유한 드문 경우에 사용자 지정 바인딩 파일을 사용합니다. 사용자 지정 바인딩 요소는 응용 프로그램에 대한 송신 포트를 만듭니다. OrderProcessServiceType.BindingInfo.xml 파일을 두 번 클릭하고 SendPort 정의 줄을 검색하고 이 바인딩 파일을 BizTalk Server 가져올 때 생성될 송신 포트를 검토합니다.
<SendPort Name="WCFSendPort_OrderProcessServiceType_ServiceEndpoint" … >
이러한 파일은 WCF 어댑터를 사용하여 메타데이터에 설명된 샘플 WCF 서비스를 사용하는 송신 포트에 사용됩니다.
샘플 BizTalk 솔루션, BizTalkApp 배포
다음과 같이 BizTalk Server 애플리케이션을 배포합니다.
Visual Studio의 솔루션 탐색기 BizTalkApp을 마우스 오른쪽 단추로 클릭한 다음 속성 을 클릭합니다.
프로젝트 Designer 창에서 배포 탭을 클릭한 다음, BizTalk Server 관리 데이터베이스에 다른 데이터베이스 서버를 사용하는 경우 Server 속성을 변경합니다. 애플리케이션 이름이 WCFBasicHttpSendAdapter인지 확인합니다.
Visual Studio의 솔루션 탐색기 BizTalkApp을 마우스 오른쪽 단추로 클릭한 다음 다시 빌드를 클릭합니다.
Visual Studio의 솔루션 탐색기 BizTalkApp을 마우스 오른쪽 단추로 클릭한 다음 배포를 클릭합니다. 그러면 Microsoft.Samples.BizTalk.WCF.BasicHttpSendAdapter.BizTalkApp 어셈블리가 GAC에 배포되고 아티팩트가 WCFBasicHttpSendAdapter라는 BizTalk Server 애플리케이션에 배포됩니다.
BizTalk 응용 프로그램에서 다음과 같이 WCF-BasicHttp 송신 포트를 구성합니다.
시작을 클릭하고 모든 프로그램을 가리키고 Microsoft BizTalk Server 20xx를 가리킨 다음 BizTalk Server 관리를 클릭합니다.
BizTalk Server 관리 콘솔에서 BizTalk 그룹, 애플리케이션, WCFBasicHttpSendAdapter를 마우스 오른쪽 단추로 클릭하고 가져오기를 가리킨 다음 바인딩을 클릭합니다.
바인딩 가져오기 대화 상자에서 C:\WCFBasicHttpSendAdapter\BizTalkApp 폴더로 이동하여 OrderProcessServiceType.BindingInfo.xml를 선택한 다음 열기를 클릭합니다. 이는 이전에 BizTalk WCF 서비스 사용 마법사 에서 만든 바인딩 파일 중 하나입니다. 그러면 WCFSendPort_OrderProcessServiceType_ServiceEndpoint 송신 포트가 만들어집니다.
BizTalk Server 관리 콘솔에서 WCFBasicHttpSendAdapter를 확장하고 포트 보내기를 클릭합니다.
BizTalk Server 관리 콘솔의 오른쪽 창에서 바인딩 파일 OrderProcessServiceType.BindingInfo.xml 가져와 만든 WCFSendPort_OrderProcessServiceType_ServiceEndpoint 두 번 클릭합니다. 그러면 송신 포트 속성 대화 상자가 나타납니다.
송신 포트 속성 대화 상자에서 구성을 클릭합니다.
일반 탭에서 의 주소(URI) 필드를 검토합니다
http://localhost/BasicHttpWcfServiceConsuming/OrderProcess.svc
. 이 주소는 WCF-BasicHttp 어댑터가 호출할 IIS에서 호스트되는 WCF 서비스의 주소입니다.SOAP 작업 헤더/작업 텍스트 상자의 내용을 검토합니다.
<BtsActionMapping xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <Operation Name="Submit" Action="http://Microsoft.Samples.BizTalk.WCF.BasicHttpSendAdapter.BasicHttpWcfServiceConsuming/IOrderProcess/Submit" /> </BtsActionMapping>
이 필드는 나가는 SOAP HTTP 요청 메시지의 목적을 나타냅니다. 그 목적은 Microsoft.Samples.BizTalk.WCF.BasicHttpSendAdapter.BasicHttpWcfServiceConsuming 네임스페이스에서 IOrderProcess 인터페이스의 전송 작업을 호출하는 것입니다.
참고
BizTalk WCF 서비스 사용 마법사에서 생성하는 바인딩 파일은 StaticAction 속성에 대한 작업 매핑 형식을 사용합니다. WCF 송신 어댑터에 콘텐츠 기반 라우팅을 사용하여 WCF 서비스에 메시지를 보내는 경우 BTS를 설정해야 합니다 . 작업 매핑 형식에 대한 파이프라인 구성 요소의 작업 속성은 콘텐츠 기반 라우팅에 사용할 필드입니다. 또는 내용 기준 라우팅을 위해 단일 작업 형식을 사용할 수 있습니다. 이 연습에서는 단일 작업 형식을 사용합니다. 단일 작업 형식 및 작업 매핑 형식에 대한 자세한 내용은 UI 지침 및 개발자 API 네임스페이스 참조에서 WCF-BasicHttp 전송 속성 대화 상자, 보내기, 일반 탭을 참조하세요.
확인을 두 번 클릭하여 BizTalk Server 관리 콘솔로 돌아갑니다.
단방향 정적 수신 포트 및 FILE 수신 위치를 만듭니다. 수신 포트는 하나 이상의 수신 위치에 대한 논리적 컨테이너입니다. 여기서 파일 어댑터에서 선택한 다음 WCF 서비스로 전송되는 샘플 WCF 메시지를 삭제합니다.
BizTalk Server 관리 콘솔에서 WCFBasicHttpSendAdapter를 확장하고 수신 포트를 마우스 오른쪽 단추로 클릭하고 새로 만들기를 가리킨 다음 단방향 수신 포트를 클릭합니다.
수신 포트 속성 대화 상자의 이름 텍스트 상자에 를 입력
WCFBasicSendAdapter.ReceivePurchaseOrder
한 다음 확인을 클릭합니다.BizTalk Server 관리 콘솔에서 WCFBasicHttpSendAdapter.ReceivePurchaseOrder를 마우스 오른쪽 단추로 클릭하고 새로 만들기를 가리킨 다음 위치 받기를 클릭합니다.
수신 위치 속성 대화 상자의 이름 텍스트 상자에 를 입력합니다
WCFBasicSendAdapter.ReceivePurchaseOrder.FILE
.수신 위치 속성 대화 상자의 형식 옆의 전송 섹션에서 드롭다운 목록에서 파일을 선택한 다음 구성을 클릭합니다.
파일 전송 속성 대화 상자의 일반 탭에 있는 수신 폴더 텍스트 상자에 를 입력
C:\WCFBasicHttpSendAdapter\OrderRequestIn
한 다음 확인을 클릭합니다.수신 위치 속성 대화 상자에서 확인을 클릭합니다.
필터를 만들어 메시지를 이전 단계에서 만든 FILE 수신 위치에서 WCF-BasicHttp 전송 포트로 라우팅합니다. True로 평가되면 메시지가 해당 포트에 제공된다는 점에서 포트와 연결된 필터는 SQL “where” 절 역할을 합니다.
BizTalk Server 관리 콘솔에서 WCFBasicHttpSendAdapter를 확장하고 포트 보내기를 클릭한 다음 WCFSendPort_OrderProcessServiceType_ServiceEndpoint 두 번 클릭합니다.
송신 포트 속성 대화 상자의 필터 탭에서 BTS를 선택합니다. 속성 필드에 ReceivePortName을 입력하고 값 필드를 입력
WCFBasicSendAdapter.ReceivePurchaseOrder
한 다음 확인을 클릭합니다. 이 필터 식은 들어오는 메시지를 WCFBasicSendAdapter.ReceivePurchaseOrder 수신 포트에서 이 WCF-BasicHttp 송신 포트로 라우팅합니다.
샘플 응용 프로그램에 대해 두 개의 FILE 송신 포트를 만듭니다. 첫 번째 송신 포트는 WCF 서비스에서 FILE 포트로 출력 응답 메시지를 보냅니다. 두 번째 송신 포트는 클라이언트로 향하는 WCF 서비스에서 보낸 오류 메시지를 처리하는 데 사용됩니다.
BizTalk Server 관리 콘솔에서 WCFBasicHttpSendAdapter를 확장하고 포트 보내기를 마우스 오른쪽 단추로 클릭하고 새로 만들기를 가리킨 다음 정적 단방향 송신 포트를 클릭합니다.
송신 포트 속성 대화 상자의 이름 텍스트 상자에 를 입력합니다
WCFBasicSendAdapter.SendPurchaseOrder.FILE
.송신 포트 속성 대화 상자의 형식 옆의 전송 섹션에서 드롭다운 목록에서 FILE을 선택한 다음 구성을 클릭합니다.
파일 전송 속성 대화 상자의 일반 탭에 있는 대상 폴더 텍스트 상자에 C:\WCFBasicHttpSendAdapter\OrderResponseOut을 입력하고 확인을 클릭합니다.
송신 포트 속성 대화 상자의 필터 탭에서 BTS를 선택합니다. 속성 필드에 MessageType을 입력
http://Microsoft.Samples.BizTalk.WCF.BasicHttpSendAdapter.BasicHttpWCFServiceConsuming#OrderResponse
하여 샘플 WCF 서비스의 응답 메시지 유형을 지정한 다음 확인을 클릭합니다. 이 필터 식은 샘플 WCF 서비스에서 이 FILE 송신 포트로 응답 메시지를 라우팅합니다. 송신 포트는 필터 속성에서 OrderResponse 유형을 지정하여 해당 유형의 메시지에 등록됩니다. WCF 서비스에서 보낸 응답 메시지의 메시지 유형입니다.송신 포트 속성 대화 상자에서 확인을 클릭합니다.
BizTalk Server 관리 콘솔에서 WCFBasicHttpSendAdapter를 확장하고 포트 보내기를 마우스 오른쪽 단추로 클릭하고 새로 만들기를 가리킨 다음 정적 단방향 송신 포트를 클릭합니다.
송신 포트 속성 대화 상자의 이름 텍스트 상자에 를 입력합니다
WCFAdapterErrorSend.FILE
.송신 포트 속성 대화 상자의 형식 옆의 전송 섹션에서 드롭다운 목록에서 FILE을 선택한 다음 구성을 클릭합니다.
파일 전송 속성 대화 상자의 일반 탭에 있는 대상 폴더 텍스트 상자에 **C:\WCFBasicHttpSendAdapter\WCFAdapterErrorOut**을 입력하고 확인을 클릭합니다.
송신 포트 속성 대화 상자의 필터 탭에서 WCF를 선택합니다. 속성 필드에 IsFault를 입력하고 값 필드를 입력
True
한 다음 확인을 클릭합니다. 애플리케이션 내에서 WCF를 확인하여 예외 또는 오류를 검색할 수 있습니다 . 호출자에게 다시 전송된 메시지의 IsFault 속성입니다. 전송 중인 메시지가 SOAP 오류 메시지인 경우 이 속성은 True 로 설정됩니다. 이 필터 식은 샘플 WCF 서비스에서 이 FILE 송신 포트로 오류 메시지를 라우팅합니다.
샘플 응용 프로그램에 대한 호스트 이름과 바인딩을 다음과 같이 지정합니다.
BizTalk Server 관리 콘솔에서 WCFBasicHttpSendAdapter를 확장하고 오케스트레이션을 확장하고 Microsoft.Samples.BizTalk.WCF.BasicHttpSendAdapter.BizTalkApp.OrderProcessServiceTypeClient 오케스트레이션, 속성, 바인딩을 차례로 클릭하고 호스트를 BizTalkServerApplication으로 설정한 다음 확인을 클릭하여 구성을 저장합니다.
WCF-BasicHttp 송신 어댑터를 사용하여 샘플 솔루션 테스트
BizTalk Server 관리 콘솔에서 WCFBasicHttpSendAdapter를 마우스 오른쪽 단추로 클릭한 다음 시작을 클릭합니다.
시작 대화 상자에서 시작을 클릭합니다.
BizTalk Server 관리 콘솔에서 플랫폼 설정, 호스트 인스턴스, BizTalkServerApplication 또는 다른 적절한 호스트 instance 마우스 오른쪽 단추로 클릭한 다음 다시 시작을 클릭합니다.
명령 프롬프트를 열고 iisreset을 입력하여 IIS 및 해당 종속 서비스를 재활용한 다음 Enter 키를 누릅니다.
명령 프롬프트에서 C:\WCFBasicHttpSendAdapter\TestData\WCFBasicSendAdapter.OrderRequest.Sample.xmlC:\WCFBasicHttpSendAdapter\OrderRequestIn 폴더에 복사합니다. 이 메시지는 양방향 WcfSendPort_OrderProcessServiceType_ServiceEndpoint 정적 Solicit-Response 송신 포트로 라우팅됩니다. 이 양방향 송신 포트의 송신 쪽은 IIS에서 호스트되는 WCF 서비스에서 Submit 메서드를 호출합니다. 결과는 WcfSendPort_OrderProcessServiceType_ServiceEndpoint 송신 포트의 응답 포트로 반환됩니다. WCFBasicSendAdapter.SendPurchaseOrder.FILE 송신 포트에는 메시지 유형이 일 때 트리거되는 구독이 있습니다
http://Microsoft.Samples.BizTalk.WCF.BasicHttpSendAdapter.BasicHttpWCFServiceConsuming#OrderResponse
. 성공적으로 처리된 메시지를 가져와 C:\WCFBasicHttpSendAdapter\OrderResponseOut 폴더에 씁니다.WCF 서비스의 응답 메시지는 C:\WCFBasicHttpSendAdapter\OrderResponseOut 폴더를 확인합니다.
명령 프롬프트에서 C:\WCFBasicHttpSendAdapter\OrderRequestIn 폴더로 C:\WCFBasicHttpSendAdapter\TestData\WCFBasicSendAdapter.OrderRequest.Invalid.xml. 이 메시지에는 WCF 서비스가 오류 메시지를 반환할 수 있도록 잘못된 네임스페이스가 포함되어 있습니다.
WCF 서비스의 오류 메시지가 포함된 XML 파일은 C:\WCFBasicHttpSendAdapter\WCFAdapterErrorOut 폴더를 확인합니다. 오류 메시지의 < 원인이 잘못된 메시지 본문이 되는 원인을 보여 주는 오류 문자열> 필드를 확인합니다.
참고 항목
연습: WCF-BasicHttp 어댑터를 사용하여 WCF 서비스 게시BizTalk WCF 서비스 사용 마법사를 사용하여 WCF어댑터에 대한 메시지 본문을 지정하는 WCF 서비스 사용 방법