2011-08-16 27 views
0

首先,我沒有MSMQ的經驗。具有無效路徑的私人MessageQueue對象是否會觸發MessageQueueException?

假設一個無效路徑被傳遞給一個私人MessageQueue對象的構造函數,當send方法被調用時它會觸發MessageQueueException嗎?如果是這樣,錯誤代碼仍然是QueueNotFound? MSDN指出,對於未在消息隊列命名空間中不存在的目錄和Internet隊列中未註冊的公用隊列,將返回此錯誤。但是,根據我所讀到的,私人隊列不會在Active Directory中發佈,所以我不確定會發生什麼。

我很抱歉,如果這沒有意義。

回答

2

如果您嘗試發送到不存在的隊列,則只要隊列名稱的格式爲有效,發送調用就不會失敗。我的意思是目標隊列地址不需要存在,但隊列名稱的格式必須正確。

相反,MSMQ子系統會將消息在本地排隊在一個臨時出站隊列中,您應該能夠看到該臨時出站隊列。

它這樣做的原因是因爲它認爲目標隊列可能暫時不可用,並且當它再次變得可用時,將傳輸該消息。

但經過一段時間(不記得默認值)後,它會將郵件移動到無法投遞的死信隊列中。

希望這會有所幫助。

+0

MSMQ只會生成傳送到本地傳出隊列的異常。錯誤將傳遞問題陷阱到遠程目標需要負面日誌記錄和監視發件人上的死信隊列。 操作系統。 –

+0

謝謝約翰,我想將你的評論加入我的回答中,但我不確定我是否理解你在說什麼。 –

+0

最後忽略「操作系統」位 - 不知道爲什麼會在那裏結束。 –