我的问题有点令人困惑。我有 2 台安装了 MSMQ 的服务器 (Windows Server 2008 R2),我想使用服务器 B 来使用服务器 A 上的消息队列。当我尝试接收时,它总是会抛出一条消息错误: "Access to message queuing system is denied."
。
它们之间的 IP。
服务器A:172.31.23.130
服务器B:172.31.23.195
FormatName:Direct=TCP:172.31.23.195\private$\queuesource(用于发送)
- 我可以从另一台服务器 ping 通每台服务器;
- 防火墙已禁用;
- “queuesource”对“所有人”、“匿名登录”、“网络”、“网络服务”具有完全控制权;
- 日志已被禁用;
- 身份验证成功;
- 该队列是事务性的。
我在 .Net C# 中的代码基本上是这样的:
MessageQueue _sourceQueue = new MessageQueue();
_sourceQueue.Path = "FormatName:Direct=TCP:172.31.23.195\private$\queuesource";
_sourceQueue.Receive(); // << here throw an exception.
实际上我使用私有队列只是为了避免 Active Directory 的问题。例如,如果服务器 DNS 失败,则所有网络都会失败。我不知道该怎么办了。