2013-03-27 72 views
3

我曾嘗試使用NServiceBus版本3接收來自遠程客戶端計算機發送到MSMQ隊列中的消息。客戶端與目標隊列所在的機器位於同一個域中。後一臺機器運行Windows Server 2008 R2(MSMQ版本5.0)作爲操作系統。考慮到NServiceBus文檔,我以「QueueName @ MachineName」的形式指定了端點名稱。但是,郵件未被髮送到指定隊列。似乎「MessageQueue」類的「Transactional」屬性導致了問題。所以我繞過了訪問NServiceBus源代碼中的屬性。其結果消息被成功發送,但已收到無應答消息在客戶端。更確切地說,當我查看服務器管理器窗口上的消息信息時,響應隊列的名稱是空的。 只有在遠程發送消息時纔會發生這種情況。看來我已經錯誤地設置了一些配置。我想知道我需要提供什麼配置信息才能使NServiceBus在上述環境中工作。此外,是否有一個示例項目演示瞭如何使用NServiceBus將消息發送到遠程隊列並接收相應的答覆消息。如何配置NServiceBus以使用遠程MSMQ隊列?

+0

你試圖做一個遠程接收?如果是這樣,NSB只接收來自本地隊列。 – 2013-03-27 17:46:13

+0

不,我只想遠程發送消息(即將它們發送到遠程隊列)。事實上,接收是由NServiceBus在本地完成的,並且預計將發送一條新消息來響應收到的消息。 – 2013-03-30 07:16:09

回答

3

如果配置了客戶端過程僅發送端點,那麼將不包括在其發送,這意味着服務器將無法響應消息的返回地址。話雖如此,我不認爲這是你的問題。

你應該嘗試運行帶有NServiceBus在你的機器,看看它是否工作正常全雙工樣品。如果沒有,那意味着你需要更正那些機器上的更深的安裝問題。

+0

非常感謝您的回覆。我嘗試了「FullDuplex」示例,同樣的問題仍然存在。更具體地講,它拋出,上面寫着'無法格式名獨立名翻譯例外:PRIVATE = b95d7982-6157-462e-9c6c-15275ecc214f \ 00000088'。後跟隊列號的GUID確實指向響應隊列所在的客戶端機器。但是,似乎獲取響應隊列的QueueName屬性時存在問題。異常發生在'NServiceBus.Utils.MsmqUtilities.GetIndependentAddressForQueue(MessageQueue q)'方法中。 – 2013-03-30 11:43:29

+2

那麼很可能你的MSMQ安裝不好。最有可能的是,您已啓用Active Directory集成,並且需要關閉。 – 2013-04-02 20:51:38

+0

非常感謝Udi,感謝您的幫助和關心。禁用「目錄服務集成」後,系統現在按預期工作。 – 2013-04-06 11:42:29

相關問題