WCF 发送适配器
WCF 发送适配器允许您通过无类型的协定调用 WCF 服务。
可以通过使用下列选项之一将需要从 BizTalk Server 发送的消息正文插入到 SOAP 消息中:
提取 BizTalk 消息正文的内容
使用模板指定内容
您可以在“发送端口传输属性”对话框中配置这些选项。
当选中此选项时,BizTalk 消息正文的内容会插入到出站 WCF 消息正文的 SOAP 正文元素中。
当选中此选项时,会将 BizTalk 消息正文放置到出站 WCF 消息正文的给定的 XML 模板下的 SOAP 正文元素中。
发送适配器在发送 BizTalk 消息之前将它序列化为 SOAP 消息。在消息序列化期间,以下规则适用:
如果 BizTalk 消息是由多个部分组成的消息,则只会使用正文部分。
如果 BizTalk 消息包含整个 SOAP 信封,则会将其包装到另一个 SOAP 信封中。
如果 BizTalk 消息包含任意 XML 数据,则会将 BizTalk 消息放置到 SOAP 正文元素中。
在发送操作期间,BizTalk Server 无法控制 Web Services 标准标头。 这些标头会通过 WCF 进行设置和处理。 BizTalk Server应用程序唯一可以修改的标准标头是 a:Action 标头。 如果在适配器命名空间上指定了上下文属性 Action ,则 WCF 发送适配器将使用 属性的值来设置 SOAP 消息上的 Action 。
备注
对于动态发送端口,如果在 OutboundHeaders 中指定了 Action,则为 WCF 设置的上下文属性。操作将被忽略。
WCF 发送适配器缓存发送端口的配置。 如果 BTS。IsDynamicSend 属性设置为 true,WCF 发送适配器不使用缓存配置,而是从出站消息的消息上下文属性读取所有配置信息。 在静态发送端口上,WCF 发送适配器使用 BTS。SPLastUpdatedTime,即上次修改静态发送端口设置的时间,用于检测静态发送端口上是否有任何配置更改。 这样,WCF 发送适配器就不需要从每个消息上下文中读取所有设置。
如果要替代 WCF 以外的静态发送端口属性 。 发送管道中的操作属性,需要设置 BTS。IsDynamicSend 属性为 true,因此即使上次更新的时间戳未更改,WCF 发送适配器也不会使用缓存的配置。