Ошибка маршрутизации сообщений в плоском файле BizTalk - PullRequest
1 голос
/ 06 мая 2010

Я обнаружил несколько разорванных потоков в Интернете, где люди утверждают, что они могут использовать формы получения в оркестровке с типами XLANGMessage для получения файлов схемы плоских файлов, которые не могут быть собраны в определенный xsd.

Я попытался установить тип сообщения в форме приема как Microsoft.XLANGS.BaseTypes.XLANGMessage, но этот базовый тип не сериализуем. Это тогда вызывает ошибку сборки.

Существует ли тип объекта, который может захватывать как XmlDocuments правильно сформированных xml-сообщений, так и неправильно сформированные xml и не собранные плоские файлы?

1 Ответ

0 голосов
/ 07 мая 2010

Отвечая на ваш прямой вопрос, выделенный жирным шрифтом, - да, тип, который вам нужен, - System.Xml.XmlDocument.

Что вам нужно сделать, это создать новое сообщение и при выборе его типа выбрать вышеуказанный типиз раздела .NET Classes.

Это сообщение при назначении получающей фигуре может затем принимать любую полезную нагрузку, например, я часто использовал это для передачи таких форматов, как .pdf файлы через BizTalk, где у меня не былонужно разобрать их.Имейте в виду, однако, что, несмотря на название, то, что у вас здесь есть, не является Xml и вызовет у вас всевозможные проблемы, если вы попытаетесь так и трактовать именно так.


Чтобы немного углубиться вваш вопрос - вы пытаетесь создать какую-то оркестровку обработки ошибок?

Если вы в своем коде обработки ошибок, вы можете просто получить форму получения, которая получает сообщение типа XmlDocument с выражением фильтраустановлен в ErrorReport.ErrorType == "FailedMessage", который привязан к порту прямой привязки, подключенному к блоку сообщений.

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

Это означает, что вы можете затем создать одно централизованное место для обработкивсе исключения.


Если вы еще не видели, есть хороший post Чарльза Янга , который может описать нечто похожее на то, что вы пытаетесь сделать.

...