2017-02-06 13 views
0

이 오류가 발생하여 솔루션에 더 가까이 다가가는 것이 좋습니다. 사용 된 스키마는 글로벌 표준이며 제 통제하에 있지 않습니다. 전체에서BizTalk 오류 : 수신 파이프 라인 수신 실패, 문서 유형이 지정된 스키마와 일치하지 않습니다.

오류 메시지 :

There was a failure executing the receive pipeline: "Microsoft.BizTalk.DefaultPipelines.XMLReceive, Microsoft.BizTalk.DefaultPipelines, Version=3.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" Source: "XML disassembler" Receive Port: "[receive port name]" URI: "[url to imput xml]" Reason: Document type "[namespace]#[envelope root element name]" does not match any of the given schemas."

내 설정 : XMLReceive 파이프 라인 메시지를 debatch하는 나는 봉투 스키마를 가지고있다. 이를 달성하기 위해 수신 위치의 EnvelopeSpecNames에 어셈블리 정보를 지정했습니다. 스키마 속성 Envelope = Yes를 설정하고 루트 참조를 지정했습니다 (스키마에 많은 루트 요소가 있으므로). PropertySchema를 사용하여 나중에 처리하기 위해 봉투에서 일부 속성을 승격시키고 모든 참조가 올바른 것으로 보입니다.

중복 확인 구성이 있으며 오류 메시지에서 참조되는 스키마는 BizTalk (db를 검사하여 기존 및 중복 없음)로 알려져 있습니다. 모든 장소에서 다시 복사하여 붙여 넣기하여 모든 단일 이름을 확인했습니다. 동일한 오류로 완전히 새로운 환경으로 응용 프로그램을 가져올 수 있는지 확인했습니다.

내가 무엇을 놓쳤는가?

이전의 이론은 오류가 잘못된 정보를 제공하지만 속성 스키마에 대한 참조로 인해 발생했지만 모든 것이 체크 아웃된다는 이론이었습니다. 나의 현재의 이론은 오류가 완전히 다른 무엇인가에 관한 것이지만 - 무엇을!?

답변

2

실제로이 질문을 게시 한 후 약 10 초 만에 이론은 솔루션의 명시적인 구조로 구체화되었습니다 : body xpath.

그래서, 요약에 지정해야합니다 - 봉투 = 예 (포락선 메시지로 메시지를 처리하는 BizTalk에게하는) - 바디 XPath는 (즉, XPath는 - 루트 요소를 을 (봉투에 대한 올바른 루트 요소를 제공하기 위해) 봉투 내의 내용 메시지 표현)

희망이 있으면 누구나 도움이됩니다.