【发布时间】:2011-05-01 22:57:49
【问题描述】:
虽然我的问题看起来类似于一些已经在 SO 上找到的问题,但这些帖子对我没有帮助,所以这里是:
给定:
- 同一段的两台机器(自然在同一个域中,实际上在同一张桌子上)
- 两台机器都是 Windows 7 工作站
- 两台机器都禁用了防火墙
- 两台机器互相看到(ping 正常)
- 其中一个上有一个私有的非事务性消息队列test。
- 发件人机器有
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSMQ\SimpleClient\@BinaryEnabled = 'Yes' - 队列所有者从另一台机器发送消息
- 消息停留在传出队列中,永远无法到达目标。
- 当从同一台机器(即本地)发送时,消息可以正常到达。
使用以下代码发送消息:
var q = new MessageQueue(@"FormatName:Direct=OS:il-mark-lap\private$\test");
q.Send(string.Format("Test message sent at {0} from {1}", DateTime.Now, Environment.MachineName));
其中 il-mark-lap 是队列中机器的地址。
我到底要做什么才能让这件事发挥作用?
非常感谢。
【问题讨论】:
-
我也面临同样的问题。马克,你有没有弄明白这件事的真相?
-
我现在不记得了。无论如何,msmq 有无数问题,所以我们刚刚放弃了它。我的建议 - 远离它。
-
我添加了赏金,因为我们有同样的问题。即使使用 DIRECT=TCP,消息也只是位于传出队列中。
-
我们早就放弃了 MSMQ,因为它有很多相关的问题。我的建议 - 效仿。
-
感谢您的建议。由于即使有赏金也没有人可以提供帮助,我们最终也放弃了 MSMQ,转而支持 RabbitMQ。