我的项目中有2个编排和2个模式(第一个用于请求,第二个用于响应)。Orchestration 1具有Receive形状(Activating=true)。它接收一个请求,然后将其路由到Orchestration 2。后者构造对web服务的请求,web服务用响应响应,等待2分钟,然后向我的BizTalk服务发送一个新请求。两个项目都使用相同的架构、Request和Response模式。
Orchestration 2使用关联集,该关联集以向web服务发送请求的Send形状初始化。此外,Orchestration 2有一个Receive形状,它正在等待一条消息,该消息的相关性集在Send形状中。
以下是序列图:

还有Orchestration 2:

Send_1和Receive_2形状具有相关属性设置。
问题在于,当一个see服务向我的biztalk服务发送request2 (见上图)时,它会抛出一个错误:“消息找到了多个请求响应订阅。一条消息只能被路由到一个请求响应订阅。”,如果我设置了关联,这是怎么回事?我预计request2会被路由到Orchestration 2,因为它有一个具有相关性的接收器。
发布于 2011-10-20 07:01:46
错误信息是正确的。
当从WebService发送请求时,它被路由到激活接收形状Orchestration2。
但是,由于相关性是有效的,这将创建一个额外的订阅,这就是为什么请求也将被路由到Orchestration2中的第三个接收形状。
如果无法区分请求架构,则必须使用附加条件激活Orchestration2。例如,您可以根据上下文属性使用额外的过滤器过滤来自Orchestration1的请求。
您将看到一个请求来自WCF或,而第一个请求并不来自WCF或SOAP适配器。
https://stackoverflow.com/questions/7831885
复制相似问题