2017-02-06 11 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 и задал Root Reference (так как в схеме много корневых элементов). Я использую PropertySchema для продвижения некоторых свойств из конверта, которые будут использоваться для последующей обработки, и все ссылки кажутся правильными.

У меня есть проверенная дважды конфигурация, а схема, на которую ссылается в сообщении об ошибке, известна BizTalk (также проверено db для проверки, наличия и отсутствия дубликатов). Проверяйте каждое имя, повторно копируя и вставляя все места. Я проверил, чтобы импортировать приложение в совершенно новую среду с той же ошибкой.

Что я пропустил?

Моя предыдущая теория заключалась в том, что ошибка дает неверную информацию, но вызвана ссылками на/из схемы свойств, но все проверяется. Моя нынешняя теория заключается в том, что ошибка заключается в чем-то совершенно другом - но что !?

ответ

2

Примерно через 10 секунд после фактического опубликования этого вопроса теория материализовалась в явное предложение решения: body xpath.

Таким образом, в заключении необходимо указать: - Конверт = Да (сказать BizTalk лечить сообщение как оболочечные сообщения) - корневой элемент (дать правильный корневой элемент для оболочки) - тело XPath (т.е. XPATH выражение для сообщения содержимого внутри конверта)

Надеюсь, это поможет любому!