1

我们开发了具有扩展和故障转移能力的产品。
为了持久性,服务器相互通信,我们wcfmsmq配置集群下使用窗口服务以使用集群 msmq 时遇到了麻烦。
答案是Environment.SetEnvironmentVariable在服务启动中配置如下Environment.SetEnvironmentVariable(_CLUSTER_NETWORK_NAME_,"Cluster");,然后集群 msmq 上的 wcf 正在工作,但问题是要知道服务何时在集群下,何时不在。
有什么办法知道吗?

更新

与微软协商后,我们得出的结论是,使用 MSMQ 的集群架构是错误的,MSMQ 是服务而不是服务器,因此作为队列主服务器的每个服务器都需要配置 msmq 作为自己的依赖项团体。msmq 将处理节点和服务器客户端之间的消息。

4

1 回答 1

1

我们将 WCF (netMsmqBinding) 与集群 MSMQ 结合使用。在故障转移群集管理器 (2008) 或群集管理员 (2003) 中添加 MSMQ 服务时

你有一个网络名称,比如说“MyNetworkName”,它有一个 IP。MSMQ 可在该网络名称上访问 - 因此您的配置中的队列定义应以 MyNetworkName\private... 开头,或者如果您的 WCF 服务也在集群中作为 Windows 服务运行,您可以选择资源选项“使用网络名称for comutername”,您可以在配置中使用“.\private....” - “备注:Windows 服务应该与 MSMQ 在同一资源组中运行”。

编辑:所以如果我很好地理解了您的问题,当您在集群服务上选中“使用网络名称 ....”复选框时,相同的代码将使用集群 msmsq,但如果您没有在集群上运行或不在资源中运行组它将使用本地 msmq

确保您的 MSMQ 以目录服务集成模式安装。

要组织群集 MSMQ,您可以使用 microsoft 的 mmcv.exe 工具(常规 mmc.exe 工具不够用)。

您可以在此处阅读有关 mmcv.exe 的信息:http: //support.microsoft.com/kb/898701

于 2012-07-24T11:55:15.533 回答