用 queuePath = @"FormatName:Direct=TCP:" + hostIp + @"\Private$\" + mqName 的方式,发到自己机器上的MSMQ没问题(但要注意IP不能用127.0.0.1),但发到其他机器就是没反应.
检查outgoing queue, 发现消息都在那里窝着,状态是waiting to connect. 按这个线索google, 尝试, 最后解决:
在目标机器上,
1. 防火墙的 TCP 1801口要打开
2. Computer Management (right-click) -> Message Queuing -> Properties -> Server Security tab, 几项都要去掉。
3. 可能需要重启message queue服务和机器。