如何使用MessageQueue检测连接中断

Lop*_*per 5 c# connection msmq message-queue mq

我用C#编写的应用程序利用MessageQueue.NET 中的类与另一个远程应用程序进行消息通信,并且在所有情况下,MessageQueue应始终与远程messageQueue"连接"(存在心跳).如果它没有"连接",那么它表示出现了问题,我的应用程序需要执行一些操作,例如更新事件日志.

类中是否有一个方法MessageQueue可用于检测连接中的这种中断?

Han*_*ant 3

消息队列在很大程度上是为了防止断开连接而设计的。并且支持通过多台机器进行路由。因此,它无法检查是否存在实时连接。如果这是一个要求,您可能不应该考虑 MSMQ,TCP 将是一个更好的老鼠陷阱。

您可以考虑请求确认您的消息并暂停。虽然那是被动的。心跳是可能的,但一定要使用单独的非事务性队列。