如何将 LicenseKey 添加到 BizTalk SendPort 中的 Web 服务调用?
How to add a LicenseKey to an Webservice Call in a BizTalk SendPort?
我需要与 web-service 通信,但需要传递许可证密钥。
我生成了架构,但我的映射要求我映射到 "OrderInfoObject" 节点。
我尝试创建一个映射来添加带有许可证密钥的 soap 信封,这创建了在我将其复制到 soapUI 时有效的代码,但即使我设置了入站消息也会被双重封装 (<soapenv:Envelope><soapenv:Body><soapenv:Envelope><soapenv:Body>
) body 到信封 -- 整个 Body -- 内容。
所以我的映射具有以下内容
<wms:OrderInfoObject>
...
</wms:OrderInfoObject>
并且发送端口在 soapbody 中添加了
<soapenv:Envelope xmlns:soapenv="..." xmlns:wms="...">
<soapenv:Header>
</soapenv:Header>
<soapenv:Body>
-- Here comes my message --
</soapenv:Body>
</soapenv:Envelope>
发送端口是通过使用 WSDL 生成的,所以我对它的工作方式没有信心,但 Header 似乎遥不可及。
所以我不确定如何添加许可证密钥。
您关注的是 LicenseKey 的错误外观。您需要在 OrderInfoObject 下的某处找到后代实现。
架构不太可能有任何问题,因为可以在根定义任何数字元素,然后在 'real' 根元素下的某处引用。
为了清理,您可以将此架构的根引用设置为 OrderInfoObject,然后所有 'Type' 元素将被隐藏。
但是,如果 LicenseKey 需要是一个 SOAP Header 元素,您可以使用 WCF.OutboundCustomHeaders 属性 向其添加元素部分。
这篇 MSDN 文章描述了这个过程:Using SOAP Headers in WCF Messages with Orchestrations
我需要与 web-service 通信,但需要传递许可证密钥。
我生成了架构,但我的映射要求我映射到 "OrderInfoObject" 节点。
我尝试创建一个映射来添加带有许可证密钥的 soap 信封,这创建了在我将其复制到 soapUI 时有效的代码,但即使我设置了入站消息也会被双重封装 (<soapenv:Envelope><soapenv:Body><soapenv:Envelope><soapenv:Body>
) body 到信封 -- 整个 Body -- 内容。
所以我的映射具有以下内容
<wms:OrderInfoObject>
...
</wms:OrderInfoObject>
并且发送端口在 soapbody 中添加了
<soapenv:Envelope xmlns:soapenv="..." xmlns:wms="...">
<soapenv:Header>
</soapenv:Header>
<soapenv:Body>
-- Here comes my message --
</soapenv:Body>
</soapenv:Envelope>
发送端口是通过使用 WSDL 生成的,所以我对它的工作方式没有信心,但 Header 似乎遥不可及。
所以我不确定如何添加许可证密钥。
您关注的是 LicenseKey 的错误外观。您需要在 OrderInfoObject 下的某处找到后代实现。
架构不太可能有任何问题,因为可以在根定义任何数字元素,然后在 'real' 根元素下的某处引用。
为了清理,您可以将此架构的根引用设置为 OrderInfoObject,然后所有 'Type' 元素将被隐藏。
但是,如果 LicenseKey 需要是一个 SOAP Header 元素,您可以使用 WCF.OutboundCustomHeaders 属性 向其添加元素部分。
这篇 MSDN 文章描述了这个过程:Using SOAP Headers in WCF Messages with Orchestrations