2017-10-19 54 views
0

我試圖通過互聯網,使用MSMQ(通過HTTP)從一臺機器發送到另一臺的消息。通過HTTP(廣域網)MSMQ

我已啓用所有正確的位和片段,據我所知,通過添加功能和角色。

MSMQ Over HTTP也包括在內。

我已經建立了自己的小c#應用程序。

我的隊列中的格式:

FORMATNAME:直接= $/testqueue(所以IP - 不是FQDN)

當我嘗試發送一條消息,該消息從來沒有擊中目標隊列。

當我RDP'd成需要接收郵件的服務器,並使用來自同一應用程序如下:

FORMATNAME:DIRECT = $/testqueue

它的工作原理!

我添加了額外的權限(每個人/匿名登錄/網絡服務) - 完全控制,無濟於事。

80港口是開放的 - 我相信這是唯一需要的港口。

我也試過這個在我的windows開發框中,作爲隔離測試的一種形式,而且還是一樣的東西!本地主機沒有問題,按預期添加到隊列中,但是一旦我添加WAN IP,什麼都不會發生。

所有未發送的消息只是開始填寫指出沒有成功的傳出消息。

SO'ers please help - 需要額外的端口?更多權限?期待您的幫助!

Chud

回答

1

好的,所以我想通了。

需要做的是創建一個映射文件。

  1. C:\ WINDOWS \ SYSTEM32 \ MSMQ \映射
  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> 
  • 確保您重新啓動消息服務(開始 - >運行 - > services.msc->信息Queuing->右鍵點擊 - >重啓
  • 這對我很有幫助,希望這可以幫助別人順利下去。

    Chud