2012-03-16 24 views
0

几个星期前,我改变了我的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认为它需要这个文件如果你知道,请告诉我...

回答

2

这可能是在您的订阅存储 - 你检查那里?

+0

Udi,谢谢你回答我的问题灰。我设置的唯一订阅存储是将'NServiceBus.Integration'放在调试选项中。尽管我已经删除了拥有订阅数据的MSMQ,但我仍然有一个Dll的调试选项。一旦我删除它,它又开始工作。 (由于我不是直接运行它,我不认为这很重要,但它似乎确实如此。)再次感谢您的答案! – Vaccano 2012-03-16 19:51:07

相关问题