2011-08-03 137 views
4

我们正在建设正在使用两种不同类型的客户,那些将使用正常的双向HTTP绑定一个共同的WCF服务,而其他的人将使用MSMQ结合,作为MSMQ根据绑定意味着,我们只能做单向的消息,这个场景我的问题是MSMQ到WCF,实现双向通信

  1. 什么是使用相同的合同,无论是客户,而合同将与消息的可能性双向沟通。

  2. 有没有一种方法,我们可以实现对MSMQ的双向通信。

  3. 如果MSMQ仅用于保证交付,如果服务器和客户端之间可以有片状连接,可以选择什么方式作为保证交付。

回答

3
  1. 没有可能性。您需要两份服务合同 - 一份用于MSMQ和一份用于HTTP。
  2. 两路以上MSMQ方式=服务一个队列并在那里客户公开自己MSMQ服务读他的队列中的消息的每个客户端一个队列。
  3. 保证交货仅供MSMQ可用,因为这样的保证不仅是片状连接,但还没有关于运行服务(邮件保存在队列中,直到服务启动和运行)。如果您需要处理通过HTTP断线连接,你需要WS-可靠的消息传递(可自定义绑定或wsHttpBinding),而是因为它的工作原理只有在服务器和客户机运行的是不一样的有保证的传递。
+0

这很清楚,但我们想要实现的是对所有客户端使用单一合同,从选项中删除MSMQ并拥有某种保证交付,那么实现这一目标的最佳方式是什么。 – asifch

+1

没有选择。没有开箱即用的解决方案,允许你想要的。两份合同有什么问题? –