如何在BizTalk SendPort中将LicenseKey添加到Webservice调用?

时间:2016-09-12 09:22:51

标签: biztalk biztalk-2010

我需要与网络服务进行通信,但需要传递许可证密钥。

我生成了模式但我的映射要求我映射到" OrderInfoObject"节点

auto generated schema

我尝试创建一个映射,使用许可证密钥添加soap信封,这会创建代码,当我将其复制到soapUI但得到双重封装(<soapenv:Envelope><soapenv:Body><soapenv:Envelope><soapenv:Body>)时,即使我将入站邮件正文设置为Envelope - - 整个来自身体 - 内容。

所以我的映射有以下

 <wms:OrderInfoObject>
   ...
 </wms:OrderInfoObject>

发送端口在soap的主体中添加了

<soapenv:Envelope xmlns:soapenv="..." xmlns:wms="...">
  <soapenv:Header>
  </soapenv:Header>
  <soapenv:Body>
 -- Here comes my message --
</soapenv:Body>
</soapenv:Envelope>

发送端口是通过使用WSDL生成的,所以我对它的工作原理没有信心但是Header似乎遥不可及。

所以我不确定如何添加许可证密钥。

1 个答案:

答案 0 :(得分:1)

您专注于LicenseKey的错误外观。您需要在OrderInfoObject下的某处找到后代实现。

Schema不太可能出现任何问题,因为任何数字元素都可以在根目录中定义,然后在“真实”下的某个地方引用。根元素。

要清理东西,可以将此Schema上的Root Reference设置为OrderInfoObject,然后将所有&#39; Type&#39;元素将被隐藏。

但是,如果LicenseKey需要是SOAP Header元素,您可以使用WCF.OutboundCustomHeaders属性向该部分添加元素。

此MSDN文章介绍了该过程:Using SOAP Headers in WCF Messages with Orchestrations