2

我们在 Windows 2008 R2 服务器上有 MSMQ,具有以下防火墙设置:1)在“允许程序通过 Windows 防火墙进行通信”中选中消息队列 2)启用 TCP 端口:2103、2105、1801

但是当ac#应用程序(使用FormatName:DIRECT=TCP:xxx.xxx.xxx.xxx\Private$\q1)尝试接收私有队列消息时,遇到如下错误:

System.Messaging.MessageQueueException:远程计算机不可用。在 System.Messaging.MessageQueue.MQCacheableInfo.get_ReadHandle()

上述设置有问题吗?请帮忙.........

谢谢,本

4

1 回答 1

3

首先,您的队列地址对于启用 Internet 的 msmq 队列不正确。它应该是格式

FormatName:DIRECT=http://myQueueServerURL/Private$\q1

您还需要在服务器上正确配置 msmq 以允许传入呼叫到端口 80(或 443 用于 https)。

或者,您可以查看NServiceBus Gateway,它位于 msmq 上,但负责通过 Internet 与另一个网关进行 http 通信。

您还可以考虑使用基于 Internet 的队列,例如Azure 服务总线

RE:评论从互联网上的远程队列接收

对于 MSMQ,您想要做的是直接不可能的。

但是,您可以在本地托管队列,然后让发件人通过 Internet 发送给您。

于 2013-10-03T13:36:17.867 回答