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



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

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

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

上面的设置有什么问题吗?请帮忙...

谢谢本

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

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

还需要在服务器上正确配置 msmq,以允许对端口 80(或 https 为 443)的传入调用。

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

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

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

你想做的是直接不可能用 MSMQ 。

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

相关内容

最新更新