幾個星期前,我改變了我的NServiceBus解決方案直接發送消息給收件人,我需要獲取消息(從發佈更改)。NServiceBus認爲它需要一個它不應該需要的文件
那部分涉及到創建新的消息合約程序集。所以我需要MessageHub.Contracts.dll,現在我需要Communication.InternalMessages.dll。
我改變了我的配置看起來像這樣:
<UnicastBusConfig>
<MessageEndpointMappings>
<add Messages="Communication.InternalMessages"
Endpoint="Communication" />
</MessageEndpointMappings>
</UnicastBusConfig>
這一切的偉大工程。當NServiceBus觸發收到消息的事件時使用新的消息類型。這一切都非常傳達。
今天,我注意到我的舊MessageHub.Contracts.dll在我的調試文件夾中。所以我刪除了它。現在,當我跑我得到這個錯誤:
Inner Exception: System.ArgumentException: Problem loading message assembly:
ArupServiceBus.LisMessageHub.Contracts --->
System.IO.FileNotFoundException: Could not load file or assembly
'LisMessageHub.Contracts' or one of its dependencies.
The system cannot find the file specified.
我曾嘗試:
我已經做了winGrep在我的整個代碼樹,該文件是不是有沒有什麼地方。
此外,沒有文件有詞「LisMessageHub」它(這意味着沒有配置或項目文件引用該組件。
我檢查,看是否有MSMQ有一個永久引用此隊列爲。出版商
我難倒我不知道是什麼原因造成NServiceBus認爲它需要這個文件如果你知道,請告訴我...
Udi,謝謝你回答我的問題灰。我設置的唯一訂閱存儲是將'NServiceBus.Integration'放在調試選項中。儘管我已經刪除了擁有訂閱數據的MSMQ,但我仍然有一個Dll的調試選項。一旦我刪除它,它又開始工作。 (由於我不是直接運行它,我不認爲這很重要,但它似乎確實如此。)再次感謝您的答案! – Vaccano 2012-03-16 19:51:07