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

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

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

下面的代码示例在 Message AssignmentExpression 形状中获取 WCF.InboundHeaders 属性的请求 SOAP 标头:

stringVar = inboundMessageInstance(WCF.InboundHeaders);

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

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

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

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

另请参阅

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