我有一个使用 MSMQ 通过 WCF 将对象发送到另一个服务的系统。该服务可以很好地提取消息并对其进行处理。但我现在遇到的问题是我需要向调用系统发送响应。
例子:
- 创建客户对象
- 填充信息
- 通过 MSMQ 使用 WCF 将消息发送到服务
- 使用 Windows 服务从队列中提取消息
- 在 windows 服务上调用 Customer.Insert() 方法
- 我现在需要将新的客户 ID 发送回此处的调用应用程序。
有任何想法吗?
正如 Emmanuel 指出的那样——MSMQ 消息是设计为单向的,实际上没有响应。
您最好的解决方案是有一个响应队列,“其他服务”可以将他的响应消息放入其中。然后,您的客户将不得不监视该队列,例如不时检查一次(每分钟,每 30 分钟 - 对您有意义的任何事情),并处理这些消息。
没有双工(双向)MSMQ 通道 - 但您可以轻松地为两个方向创建一对单独的队列。
马克
您可以使用 msmq 的双工通信,但不能使用本机通信,请查看我的文章
MSMQ 操作需要一种方式,我能想到的接收消息的唯一方法是让您的调用应用程序也托管响应服务,因为没有双工 MSMQ 绑定。