几个星期前,我改变了我的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