2012-01-17 358 views
7

我試圖發送消息到遠程隊列。我的進程沒有失敗,但是我仍然看不到遠程隊列中的消息?如果它不能處理消息,我會認爲它會失敗?MSMQ發送消息到遠程隊列

我注意到在我的本地機器上,遠程隊列在外出隊列中列出,但是在那裏也沒有看到消息。這裏很無知,所有的例子都表明我如何做(或者我假設)是正確的。

代碼(簡單測試):

using (var transaction = new TransactionScope()) 
    { 
     using (var queue = new MessageQueue(@"FormatName:DIRECT=OS:mymachine\MyQueueQueue")) 
     { 
      XDocument xdoc = XDocument.Parse("<root/>"); 

       var message = new Message(xdoc.ToString()); 
       queue.Send(message, MessageQueueTransactionType.Single); 
     } 

     transaction.Complete(); 
    } 

    Console.Read(); 
} 

我做錯了嗎?奇怪...沒有錯誤,但沒有在任何地方看到消息。寫入我的本地隊列。

回答

12

您在本地計算機上看到的隊列是MSMQ如何將消息從您的計算機傳輸到遠程計算機。所以不要擔心,只要沒有消息就可以了。如果有消息表明遠程隊列由於某種原因不可用。

可能的權限可能是一個問題。檢查遠程隊列上的發送權限。如果通話正在跨域,您需要將ANONYMOUS LOGON添加到您的權限。

還嘗試啓用MSMQ事件日誌(如果您正在運行服務器2008或更高版本)。

UPDATE

看起來要調用的公共隊列地址。你應該使用私人隊列。地址是除了PRIVATE $指令相同:

FORMATNAME:DIRECT = OS:mymachine上\ PRIVATE $ \ MyQueueQueue

ALSO:是你的隊列名稱myQueueQueue就像在你的隊列地址?

+0

謝謝@hugh ....看看事件日誌...迄今沒有看到任何東西。將看看權限 – scarpacci 2012-01-17 20:00:11

+0

謝謝你,這是隊列上的發送/接收燙髮!我非常感謝。 – scarpacci 2012-01-17 20:04:28

+0

已更新我的答案 – 2012-01-17 20:05:31

相關問題