На следующей странице в MSDN кратко объясняется, как можно использовать настраиваемые заголовки SOAP при отправке сообщений за пределы BizTalk с помощью адаптеров WCF.
По сути, вы не можете напрямую отправить контекст своего BizTalkсообщения за пределами BizTalk.Это было бы бессмысленно.Вместо этого вы можете выбрать подмножество свойств в контексте ваших сообщений BizTalk, которые будут отправлены адаптеру WCF через пользовательские заголовки SOAP.
Обработка пользовательских заголовков SOAP Исходящий запрос WCF
Заголовки SOAP, связанные с исходящим запросом, должны быть явно записаны в контекст исходящего сообщения.
При использовании адаптеров WCF заголовки SOAP определяются с помощью встроенного WCF.OutboundCustomHeaders. свойство контекста.Это свойство содержит все пользовательских заголовков SOAP, заключенных в дополнительный тег .
Заголовки могут быть указаны из оркестровки со следующим синтаксисом в форме выражения:
OutboundMessage(WCF.OutboundCustomHeaders) = "" +
"<headers>"
"<tns1:Header1 xmlns:tns1='http://tns1'>" +
"</tns1:Header1>" +
"<tns2:Header2 xmlns:tns2='http://tns2'>" +
"</tns2:Header2>" +
"</headers>" +
"";
Обратите внимание, что пользовательские заголовки SOAPа такжеиспользуется в целях иллюстрации выше, должно быть частью вашего контракта на обслуживание WCF.Когда вы создаете ссылку на службу для использованной службы WCF, эти пользовательские заголовки SOAP будут доступны в качестве сгенерированных схем в вашей оркестрации.
Как отправить определенные свойства контекста в настраиваемый заголовок SOAP
Теперь, когда вы знаете, как задать пользовательские заголовки SOAP, вы можете использовать этот синтаксис для отправки определенных свойств из контекста ваших сообщений в пользовательские заголовки SOAP, например:
OutboundMessage(WCF.OutboundCustomHeaders) =
System.String.Format(
"" +
"<headers>"
"<tns1:Header1 xmlns:tns1='http://tns1'>" +
" <tns1:Property1>{0}</tns1:Property1>" +
" <tns1:Property2>{1}</tns1:Property2>" +
"</tns1:Header1>" +
"</headers>" +
""
, InboundMessage(FILE.ReceivedFileName)
, InboundMessage(BTS.MessageType)
));
В примеревыше, два встроенных свойства контекста FILE.ReceivedFileName и BTS.MessageType были выбраны и записаны в пользовательский заголовок SOAP.В реальном сценарии вы можете проверить, существуют ли свойства в контексте, прежде чем их использовать.
Вы также можете использовать любое пользовательское свойство контекста, если оно было объявлено в соответствующей схеме свойств.