Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何设置MSMQ服务器以便可以通过Internet访问它_Msmq - Fatal编程技术网

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

如何设置MSMQ服务器以便可以通过Internet访问它,msmq,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

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

上述设置是否有问题?请帮忙

谢谢,
Ben

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

FormatName:DIRECT=http://myQueueServerURL/Private$\q1
您还需要在服务器上正确配置msmq,以允许传入到端口80(或443用于https)的呼叫

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

你也可以考虑使用基于网络的排队,例如,

RE:关于通过互联网从远程队列接收的评论

使用MSMQ,您想要做的事情是完全不可能的


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

将防火墙入站规则设置为允许端口80的流量,然后尝试读取FormatName:Direct=\q1的q消息。但遇到:指定的格式名称不支持请求的操作。遇到-“指定HTTP或HTTPS协议的直接格式名称不能用于查看或接收消息,只能用于发送消息。”但是,您如何通过Internet读取来自msmq的消息?谢谢你抽出时间。