BizTalk:多个请求响应订阅

时间:2014-01-08 15:30:42

标签: wcf biztalk

我们有一个存储过程,可以将状态记录到我们的数据库中。对于现有应用程序,用户决定将状态写入不同的服务器。

  • 我们在新服务器上复制了表和存储过程
  • 我创建了一个新的wcf-custom发送端口并将其配置为使用新数据库。
  • 我更改了业务流程绑定以使用新的发送端口。

现在我收到以下错误:

The message found multiple request response subscriptions. A message can only be routed to a single request response subscription.

我相信尽管业务流程绑定指定了使用哪个端口,但BizTalk也在寻找旧的发送端口定义。

业务流程绑定如何工作?有什么想法让它感到困惑吗?

(原始发送端口由其他应用程序使用,因此我无法删除或编辑它)

3 个答案:

答案 0 :(得分:1)

似乎旧的端口仍然已登记(可能只是stopped),或者您可能需要重新启动BizTalk个主机。

答案 1 :(得分:1)

将Orchestration绑定到端口时,Orchestration发布的该端口的任何消息都将具有SPTransportID的Context属性设置为端口的GUID。将过滤器添加到端口时,会将其添加为OR。您可以通过转到“新建查询”,“搜索订阅”和查找相关端口来查看此信息。例如,您将看到像这样的订阅

http: //schemas.microsoft.com/BizTalk/2003/system-properties.SPTransportID == {E1293B10-2763-4600-B795-A0C4B4D5E6EC} 
   Or 
http: //schemas.microsoft.com/BizTalk/2003/system-properties.ReceivePortName == ExamplePort 

因此,要解决此问题,需要更新旧端口的过滤器,以便从正在重新指向的业务流程中排除消息。或者如果另一个应用程序Orchestrations绑定到旧端口,那么你可以删除过滤器,它应该可以工作。

答案 2 :(得分:0)

要完成您描述的内容,您无需创建新的发送端口。

只需将现有发送端口的URI更改为指向新数据库。