Cluster computing 使用应用程序访问群集MSMQ

Cluster computing 使用应用程序访问群集MSMQ,cluster-computing,msmq,Cluster Computing,Msmq,我们正在从非群集环境切换到2节点群集MSMQ Windows Server 2008 R2 SP1企业环境。以前,当它是非集群的时候,我们编写了一个.NET 3.5 C#Windows窗体应用程序来帮助我们管理我们的环境(因此它可以执行一些任务,例如创建具有正确权限的队列、读取消息、转发消息等)。我想让这个应用程序与我们的新集群一起工作 根据这些文章, 我知道我需要将应用程序作为资源添加到集群中,因为当我不添加应用程序时,我正在访问节点的MSMQ实例。为了帮助调试,我关闭了本地MSMQ服务

我们正在从非群集环境切换到2节点群集MSMQ Windows Server 2008 R2 SP1企业环境。以前,当它是非集群的时候,我们编写了一个.NET 3.5 C#Windows窗体应用程序来帮助我们管理我们的环境(因此它可以执行一些任务,例如创建具有正确权限的队列、读取消息、转发消息等)。我想让这个应用程序与我们的新集群一起工作

根据这些文章,





我知道我需要将应用程序作为资源添加到集群中,因为当我不添加应用程序时,我正在访问节点的MSMQ实例。为了帮助调试,我关闭了本地MSMQ服务。但是,无论我做什么,程序都会不断尝试访问节点的实例。我将其添加为应用程序资源(命令行为“Q:\QueueManagerConsole.exe”。Q:\是故障转移群集的两个节点之间共享的磁盘),但当我通过Windows资源管理器运行它时,它看不到群集实例,只看到本地实例。我没有看到从故障转移群集管理器执行程序的方法,所以我不明白我做错了什么。我将代码切换为通过“.”(so MessageQueue.GetPrivateQueuesByMachine(“.”)访问所有内容,据我所知,这是访问本地队列的方式。有人能解释一下吗,最好是假装我不知道自己在做什么。如果这是可能的,b。如何正确执行此操作?

嗨,我刚才做了类似的操作。尝试 ,我很高兴:

  • 将应用程序配置为使用群集msmq
  • 将应用程序配置为群集资源
  • 将应用程序配置为在主机名下连接
  • 设置Transport所需的权限集

至少这将为您提供一个良好的起点。

通过创建应用程序的快捷方式并将其放置在实际访问集群队列的服务器上,我最终实现了这一点

请尝试将以下环境变量添加到应用程序使用的环境中:

_群集\网络\名称_ _群集\网络\主机名_


使用群集服务器名称作为值。它在我的团队正在开发的系统中工作-它包含一些必须访问群集MSMQ的服务,并解决了问题。

此示例适用于Windows服务,而不是Windows窗体。