我们正在迁移到 Windows 2008 R2 Standard,并将使用 Microsoft 集群(主动-被动)配置。我们的应用程序严重依赖 MSMQ 私有队列,我们的安装使用以下 C# 代码创建了超过 100 个私有队列。
MessageQueue.Create(".\private$\myqueue", false);
由于安装不在集群上下文中运行,因此队列是在本地节点上创建的,而不是在集群中。
然后我们尝试将代码更改为:
MessageQueue.Create("MYCLUSTERNAME\private$\myqueue", false);
但是,您不能在不同的服务器(在本例中为集群服务器上下文)上创建专用队列,并且您会收到错误“无效的队列路径名”。
我的两个问题是:1)有没有办法可以在集群的上下文中运行安装,以便在创建私有队列时,它实际上会在集群中创建队列?
2) 如果不是,通过 .NET 在集群中创建队列的最佳方法是什么?我读过一些博客,其中人们创建了驻留在集群内的中间人 Windows 服务,然后他们的安装使用进程间通信来告诉服务要创建哪些队列。这似乎是一种 hack,但如果事实证明这是唯一的方法,这是可行的。