MSMQ over HTTP(WAN)

时间:2017-10-19 04:28:50

标签: c# iis msmq

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

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

还包括MSMQ Over HTTP。

我已经建立了自己的小c#app。

我的队列格式为:

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

当我尝试发送消息时,消息永远不会到达目标队列。

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

FORMATNAME:直接= $ / testqueue

有效!

我添加了额外的权限(Everyone /匿名登录/网络服务) - 完全控制,但无济于事。

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

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

所有未发送的消息都会开始填写外发消息,表示没有成功。

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

CHUD

1 个答案:

答案 0 :(得分:1)

好的,我明白了。

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

  1. C:\ Windows \ System32下\ MSMQ \映射
  2. 创建一个xml文件(可以任意命名)
  3. 将以下内容添加到文件中。

     <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. 确保重新启动消息服务(start-&gt; run-&gt; services.msc-&gt;消息队列 - &gt;右键单击 - >重新启动
    2. 这对我有用。希望这有助于某人走上正轨。

      CHUD