为 WCF 发送适配器指定 SOAP 操作

可以设置 WCF。 WCF 发送适配器传输属性对话框中或业务流程 表达式 形状中的操作上下文属性。 如果设置 WCF。 业务流程中的操作上下文属性,需要将静态发送端口的 WCF 适配器传输属性对话框中的 “操作 ”字段留空。 如果还指定静态发送端口中的操作,则 为 WCF。 将在业务流程中设置的操作上下文属性将被重写。

此外,可通过两种方式指定此属性:单一操作格式和操作映射格式。 如果以单一操作格式(例如)设置此属性, http://MyService/IMyContract/MyAction1则对于传出消息的 WCF 发送适配器传输属性对话框中的 SOAP 操作始终设置为此属性中指定的值。 或者,可以在业务流程 表达式 形状中设置单个操作格式。 例如,

OutboundMessage(WCF.Action)="http://MyService/IMyContract/MyAction1";  

如果以操作映射格式设置此属性,则传出 SOAP 操作由 BTS 确定。操作 上下文属性。 例如,如果在 WCF 发送适配器传输属性对话框中和 BTS 中将此属性设置为以下 XML 格式 。操作 属性设置为在业务流程的发送端口中 Operation_1,WCF 发送适配器将用于 http://MyService/IMyContract/MyAction1 传出 SOAP 操作。

BtsActionMapping xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">  
<Operation Name="Operation_1" Action="http://MyService/IMyContract/MyAction1" />  
<Operation Name="Operation_2" Action="http://MyService/IMyContract/MyAction2" />  
<Operation Name="Operation_3" Action="http://MyService/IMyContract/MyAction3" />  
</BtsActionMapping>  

为 WCF 指定操作映射 不支持 表达式 形状中的操作。 您需要在 WCF 传输属性对话框中指定操作映射。 然后,WCF 适配器将使用 BTS 查找 SOAP 操作 。操作 上下文属性,业务流程会将该属性设置为发送消息的端口上的操作的名称。

如果使用基于内容的路由 (CBR) 路由传出消息,则 http://schemas.microsoft.com/BizTalk/2003/system-properties#Operation WCF 发送适配器会将整个操作映射字符串设置为传出 WCF 消息的操作。 若要解决此问题,可以执行下列操作之一:

  • 将发送端口上的操作字段设置为 http://MyService/IMyContract/MyAction1

  • 设置 BTS。 管道中的操作上下文属性。 例如,将 的值 http://schemas.microsoft.com/BizTalk/2003/system-properties#Operation 设置为 Operation1。

  • 将操作字段保留为空,改用传入消息中的操作。

    您也可以通过 BizTalk WCF 服务使用向导来使用包含单一操作或操作映射的 WCF 服务。 有关详细信息,请参阅 如何使用 BizTalk WCF 服务使用向导来使用 WCF 服务

另请参阅

使用 WCF 适配器上下文属性配置动态发送端口