若要访问业务流程中传入 WCF 消息的 SOAP 标头值,请使用上下文属性 WCF。InboundHeaders。 WCF 适配器将入站消息中的自定义 SOAP 标头和标准 SOAP 标头复制到 WCF。InboundHeaders 属性。 WCF 适配器还允许你选择想要以编程方式提升或写入上下文属性的属性。 如需更多详细信息,请参阅 发布的 WCF 服务的 SOAP 标头。
上下文属性中包含的值是包含具有<标头>根元素的 XML 数据的字符串,传入的 SOAP 标头作为标头>元素的<子元素复制。 访问此数据的最简单方法是在 消息分配 或 表达式 形状中使用 BizTalk 表达式编辑器,在 XmlDocument 中加载字符串,并使用 XPath 查询访问特定字段。 有关在 BizTalk 表达式编辑器中创建 XML 文档的详细信息,请参阅 XLANG 语言。
下面的代码示例在 Message Assignment 或 Expression 形状中获取 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