오케스트레이션에서 형식 오류 계약을 처리하는 방법
이 항목에서는 오케스트레이션 내에서 WCF 서비스를 이용할 때 형식 오류 계약을 처리하는 방법을 설명합니다. 오케스트레이션에서 형식화된 오류 예외를 처리하려면 사용 중인 WCF 서비스에 FaultContractAttribute 가 서비스 작업에 적용되어야 합니다. 따라서 오류는 FaultException<T> 를 사용하여 throw될 수 있습니다. 여기서 T는 WCF 서비스에서 유효한 데이터 계약 또는 직렬화 가능한 형식일 수 있습니다.
프로시저
오케스트레이션에서 형식 오류 계약을 처리하려면 다음을 수행하십시오.
Microsoft Visual Studio BizTalk 프로젝트의 솔루션 탐색기 프로젝트를 마우스 오른쪽 단추로 클릭하고 추가를 클릭한 다음 생성된 항목 추가를 클릭합니다.
생성된 항목 추가 - <프로젝트 이름> 대화 상자의 템플릿 섹션에서 WCF 서비스 사용을 선택하고 추가를 클릭합니다.
BizTalk WCF 서비스 사용 마법사 시작 페이지에서 다음을 클릭합니다.
메타데이터 원본 페이지에서 MEX(메타데이터 교환) 엔드포인트를 선택하고 다음을 클릭합니다.
메타데이터 엔드포인트 페이지에서 WS-Metadata Exchange 또는 Http-Get을 통해 다운로드할 메타데이터를 제공하는 실행 중인 서비스의 URL을 지정합니다. 예를 들면 다음과 같습니다.http://localhost:8005. URL에서 메타데이터 문서를 가져오려면 가져오기를 클릭합니다. 실행 중인 서비스에 기본 인증 체계가 있는 사용자 자격 증명이 필요한 경우 편집 을 클릭하여 실행 중인 서비스에 액세스할 때 사용할 사용자 이름과 암호를 제공할 수 있는 BizTalk WCF 서비스 사용 마법사 대화 상자를 엽니다. 다음을 클릭합니다.
WCF 서비스 메타데이터 가져오기 요약 페이지에서 설정을 검토합니다. 뒤로를 클릭하여 변경할 수 있습니다. 그런 다음 가져오기 를 클릭하여 WCF 서비스를 사용하는 데 사용할 BizTalk 아티팩트 및 형식을 만듭니다.
BizTalk WCF 서비스 사용 마법사 완료 페이지에서 마침을 클릭합니다.
이용 중인 WCF 서비스에서 다음 오류 예외가 throw된다고 가정합니다.
throw new FaultException<MyOperationException>(divideException);
송신 포트의 오류 작업에는 MyOperationException 형식의 메시지가 포함되지만 WCF 응답 메시지에는 전체 오류 본문이 포함됩니다. 따라서 전송 속성 대화 상자에서 인바운드 BizTalk 메시지 본문 옵션을 구성하여 메시지에서 MyOperationException 부분을 추출해야 합니다. 예를 들면 다음과 같습니다.
경로 -- 본문 경로로 있는 콘텐츠를 선택합니다.
본문 경로 식을 다음으로 설정합니다.
/*[local-name()='Fault']/*[local-name()='Detail']/* | /*[local-name()='DivideResponse']
노드 인코딩 드롭다운 목록에서 Xml을 선택합니다.
오케스트레이션에서 범위와 두 개의 예외 핸들러를 추가해야 합니다. 한 가지 예외 처리기는 이전 예제에 표시된 MyOperationException 과 유사한 오류 작업에 대한 것입니다. 다른 예외 처리기는 제네릭 SOAPException을 catch하는 것입니다.
참고 항목
WCF 서비스로 게시된 오케스트레이션에서 오류 예외를 throw하는 방법
BizTalk WCF 서비스 사용 마법사를 통해 WCF 서비스를 사용하는 방법