【问题标题】:How to setup MSMQ server so that it can be accessed over the Internet如何设置 MSMQ 服务器以便可以通过 Internet 访问它
【发布时间】:2013-10-09 23:18:21
【问题描述】:

我们在 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()

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

谢谢, 本

【问题讨论】:

    标签: msmq


    【解决方案1】:

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

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

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

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

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

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

    您想要做的事情对于 MSMQ 来说是完全不可能的。

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

    【讨论】:

    • 设置防火墙入站规则以允许端口 80 的流量,然后尝试使用 FormatName:Direct=xxx.xxx.xxx.xxx/msmq/Private$\q1 读取 q 消息。但是遇到:指定的格式名不支持请求的操作。遇到hintslibrary.blogspot.sg/2012/09/… - “指定 HTTP 或 HTTPS 协议的直接格式名称不能用于查看或接收消息,只能用于发送消息。”但是,您将如何通过 Internet 读取来自 msmq 的消息?感谢您的宝贵时间。
    猜你喜欢
    • 2015-12-09
    • 2014-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-24
    • 2013-06-04
    • 2013-12-12
    • 2012-02-22
    相关资源
    最近更新 更多