如何设置MSMQ服务器,以便可以通过Internet访问它

时间:2013-10-03 09:55:37

标签: msmq

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

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

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

上述设置有什么不妥之处吗?请帮助.........

谢谢, 本

1 个答案:

答案 0 :(得分:3)

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

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

您还需要在服务器上正确配置msmq以允许对端口80(或442 for https)的传入呼叫。

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

您还可以考虑使用基于互联网的排队,例如Azure service bus

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

使用MSMQ,你想要做的是直接上架。

然而,您可以在本地托管队列,然后让发件人通过互联网发送给您。