2009-09-01 3 views
1

"enevelope"스키마와 본문 스키마가 있으며 본문을 가리 키도록 "봉투"에 올바른 속성을 설정했습니다. 본문 메시지의 값을 승격시키기위한 속성 스키마도 있으므로 라우팅 할 수 있습니다.Wcf 수신 위치에서 속성 승격이 발생하지 않습니다.

파일 놓기 수신 위치와 두 개의 송신 포트를 설정했습니다. 승격 된 등록 정보의 다른 값을 등록하는 각 송신 포트. 수신 위치는 XmlReceive를 사용하고 송신 포트는 모두 XmlTransmit을 사용합니다.

Rcv 위치에 하나의 봉투 메시지를 놓으면 Bts가 그것을 선택하여 분할하고 속성을 승격하며 송신 포트가 관련 메시지를 선택하여 해당 작업을 수행합니다.

파일 드롭은 테스트를 위해 괜찮 았지만 실제 시나리오는 약간 다릅니다. 클라이언트가 Wcf를 통해 여러 문서 요소를 포함하는 "봉투"스키마를 제출하도록하십시오.

그래서 게시 마법사를 사용하여 봉투 스키마를 Wcf 끝점으로 게시했습니다. 새로운 수신 위치를 생성하십시오. Wcf 클라이언트를 유선으로 연결하여이 끝점과 통화하고 메시지를 제출했습니다.

BizTalk의 송신 포트에서 아무 것도 변경하지 않으면 동일한 결과가 예상됩니다. 그러나 이제 라우팅 오류가 발생합니다.

승격 된 속성에서 필터링하는 전송 포트에서 추가 필터를 제거하면 라우팅 실패가 발생하지 않습니다.

그래서 ... 내 속성을 승격하는 것이 Wcf 수신 위치에서 발생하지 않는 것으로 보입니다. 나는 체크했다; Wcf 수신 위치가 XmlReceive를 사용 중입니다.

무엇을 제공합니까? 어떻게 해결할 수 있습니까?

+0

SendPorts에있는 '기타'필터 란 무엇입니까? – magnus

+0

이상하게 보입니다. 필터를 제거하면 수신 메시지를 어디서 보낼지 BTS가 어떻게 알 수 있습니까? 메시지 상자에 메시지가 남아있을 것이므로 필터가없는 구독이 없으므로 라우팅 오류가 발생합니다. 흠, 나는 나 자신을 시험 할 것이다. –

+0

나는 그가 두 개의 필터를 가지고 있다고 생각합니다. 하나는 BTS.ReceivePortName == XXX && HisOwn.Promoted.Propoerty == xxx입니다. – magnus

답변

0

들어오는 메시지의 네임 스페이스가 WCF를 사용하도록 변경 한 결과 변경되었다고 생각합니다.

이로 인해 속성 승격이 수신 메시지와 더 이상 일치하지 않을 수 있습니다.

BizTalk Server 관리 도구의 추적 된 메시지에서 속성 판촉을 볼 수 있습니다.