BizTalk中的相关性

BizTalk中的相关性,biztalk,Biztalk,我的项目中有两个编排和两个模式(第一个用于请求,第二个用于响应)。 Orchestration 1具有Receive形状(Activating=true)。它接收一个请求,然后将其路由到业务流程2。后者向web服务构造一个请求,web服务以响应进行响应,等待2分钟,然后向我的BizTalk服务发送一个新请求。两个项目使用相同的模式,一个请求和一个响应模式 Orchestration 2使用在向web服务发送请求的Send形状中初始化的关联集。另外,Orchestration 2具有一个Recei

我的项目中有两个编排和两个模式(第一个用于请求,第二个用于响应)。
Orchestration 1
具有
Receive
形状(Activating=true)。它接收一个请求,然后将其路由到
业务流程2
。后者向web服务构造一个请求,web服务以响应进行响应,等待2分钟,然后向我的BizTalk服务发送一个新请求。两个项目使用相同的模式,一个
请求
和一个
响应
模式

Orchestration 2
使用在向web服务发送请求的
Send
形状中初始化的关联集。另外,
Orchestration 2
具有一个
Receive
形状,等待一条消息,该消息与先前在
Send
形状中设置的相关性相同

以下是序列图:

还有
编排2

Send_1
Receive_2
形状已设置相关属性


问题是,当Web服务向我的biztalk服务发送request2(请参见上图)时,它会抛出一个错误,说“消息找到了多个请求-响应订阅。一条消息只能路由到一个请求-响应订阅。”如果我设置了相关性,这是怎么回事?我希望request2被路由到业务流程2,因为它有一个具有相关性的接收器。

错误消息是正确的

当从WebService发送请求时,它将被路由到Orchestration2的激活接收形状

但是,由于关联是有效的,这会创建一个额外的订阅,这就是为什么请求也会被路由到Orchestration2中的第三个接收形状

如果无法区分请求架构,则必须使用附加条件来激活Orchestration2。例如,您可以根据上下文属性使用额外的筛选器筛选来自Orchestration1的请求


您将看到一个请求来自WCF或SOAP适配器,而第一个请求则不来自。

是的,这很有效,谢谢!我在Orchestration 1的Receive形状中设置了过滤器表达式,因此我使整个过程正常工作。