使用业务流程访问 WCF 消息中的 SOAP 标头

若要访问业务流程中传入 WCF 消息的 SOAP 标头值,请使用上下文属性 WCF。InboundHeaders。 WCF 适配器将入站消息中的自定义 SOAP 标头和标准 SOAP 标头复制到 WCF。InboundHeaders 属性。 WCF 适配器还允许你选择想要以编程方式提升或写入上下文属性的属性。 有关更多详细信息 ,请参阅 SOAP 标头和已发布的 WCF 服务

上下文属性中包含的值是一个字符串,其中包含具有标头>根元素的 < XML 数据,传入的 SOAP 标头将复制为 headers> 元素的<子元素。 访问此数据的最简单方法是在 消息分配表达式 形状中使用 BizTalk 表达式编辑器,在 XmlDocument 中加载字符串,并使用 XPath 查询访问特定字段。 有关在 BizTalk 表达式编辑器中创建 XML 文档的详细信息,请参阅 XLANG-s 语言

下面的代码示例获取 WCF 的消息分配表达式 形状中的请求 SOAP 标头 。InboundHeaders 属性:

stringVar = inboundMessageInstance(WCF.InboundHeaders);

上下文属性与某一特定消息关联。 消息引擎不会将请求消息中的 SOAP 标头值自动映射到响应消息中。 为 WCF 服务创建响应消息时,必须通过 WCF 专门设置 SOAP 标头值 。OutboundCustomHeaders 属性。 以下命令是设置 SOAP 标头上下文属性的最简单方法:

outboundMessageInstance(WCF.OutbounCustomHeaders) = "<headers><Origination xmlns=\"http://SOAPHeaderSchemas.OrigDestSOAPHeader\">Home</Origination><Destination xmlns=\"http://SOAPHeaderSchemas.OrigDestSOAPHeader\">Work</Destination></headers>"

还可以通过创建 XmlDocument 并将 XmlDocument 的字符串值写入上下文属性来设置上下文属性。

有关如何使用 WCF 适配器访问 SOAP 标头的详细信息,请参阅 中的 https://go.microsoft.com/fwlink/?LinkId=79960SDK 示例“将自定义 SOAP 标头与 WCF 适配器配合使用”。

另请参阅

使用管道组件 WCF适配器属性架构和属性使用 WCF 服务的 SOAP 标头访问 WCF 消息中的 SOAP 标头