“消息队列服务不可用”错误

问题描述

我们有 MSMQ 和 Windows 服务。 Windows 服务侦听来自 MSMQ 的数据。参考下面的代码

                MessageQueue myQueue;
                myQueue = new MessageQueue(QueueName,QueueAccessMode.Receive);
                myQueue.ReceiveCompleted += new ReceiveCompletedEventHandler(MyReceiveCompleted);
                myQueue.BeginReceive();

它在独立机器上运行良好。 目前我们正在尝试为 Windows 服务和 MSMQ 实现高可用性。 使用 Windows Cluster 2019 - 主动被动。我们为服务创建了 3 个角色,第 1 个和第 2 个角色(根据业务需求有 2 种类型的服务)。 MSMQ 的第三个角色。

当我们进行故障转移时,我们收到错误“消息队列服务不可用”。

为了解决该问题,我们开发了仅用于列出队列名称的 Windows 应用程序

MessageQueue[] msgqueue = MessageQueue.GetPrivateQueuesByMachine("10.162.193.188"); foreach(msgqueue 中的 MessageQueue mq) { File.AppendAllText(LogFilepath,"MSMQ : " + mq.QueueName.ToString() + " - " + DateTime.Now.ToString() + "\n"); }

以上代码列出了 Windows 应用程序中的所有私有队列名称。在 windows 服务中抛出错误的地方

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...