通过 HTTP (WAN) 的 MSMQ

MSMQ over HTTP (WAN)

我正在尝试使用 MSMQ(通过 http)通过互联网将消息从一台机器发送到另一台机器。

据我所知,我已经通过添加功能和角色启用了所有正确的点点滴滴。

MSMQ Over HTTP 也包含在内。

我构建了自己的小 C# 应用程序。

我的队列格式为:

FormatName:DIRECT=$/testqueue(所以 IP - 不是 FQDN)

当我尝试发送消息时,消息从未到达目标队列。

当我通过 RDP 连接到需要接收消息的服务器时,并使用同一应用程序中的以下内容:

格式名称:DIRECT=$/测试队列

有效!

我已添加额外权限(Everyone/Anonymous logon/network 服务)- 完全控制,但无济于事。

端口 80 已打开 - 我相信这是唯一需要打开的端口。

我也在我的 windows 开发箱上尝试过这个,作为隔离测试的一种形式,再次发生同样的事情! Localhost 没有问题,按预期添加到队列中,但是一旦我添加 WAN IP 就什么都没有发生。

所有未发送的消息刚刚开始填满外发消息,表明没有成功。

SO'ers 请帮助 - 需要额外的端口?更多权限?期待您的帮助!

查德

好的,所以我想通了。

需要做的是创建一个映射文件。

  1. C:\Windows\System32\msmq\Mapping
  2. 创建一个 xml 文件(可以随意命名)

将以下内容添加到文件中。

 <redirections xmlns="msmq-queue-redirections.xml">  
   <redirection>  
      <from>http://servername-OR-IP/MSMQ/private$/testqueue</from>  
      <to>http://localhost/MSMQ/private$/testqueue</to>   
   </redirection>  
 </redirections> 
  1. 确保重新启动消息服务(开始->运行->services.msc->消息队列->右键单击->重新启动

这对我有用。希望这可以帮助某人走上正轨。

查德