背景“没有终点的扫描组件中的配置”:可怕的NServiceBus错误
- 我在溶液中的两种NServiceBus端点项目。
- 两者都是NServiceBus订户,并且包含一条消息的消息处理程序。
- 每个订阅者项目处理来自两个不同发布者之一的消息。因此,一个项目引用来自一个发布者的消息DLL,另一个引用另一个发布者的消息DLL。
- 这两个发布者都在我的解决方案之外。从消息的DLL
- 除了,无论订户项目中引用为NServiceBus相同二进制文件,并且附加有相同的设置(UnicastBusConfig,EndpointConfig,的appSettings等)
一个订户项目运行良好,但另一方一个失败,出现此错误:
未处理的异常:System.InvalidOperationException:在扫描的程序集中找不到端点配置。这通常发生在NServiceBus无法加载包含IConfigureThisEndpoint的程序集时。尝试使用appsetting键在NServiceBus.Host.exe.config明确指定类型:EndpointConfigurationTypeScanned路径:我这里路径 在NServiceBus.Host.Program.ValidateEndpoints(IEnumerable`1 endpointConfigurationTypes) 在NServiceBus.Host.Program。 GetEndpointConfigurationType() at NServiceBus.Host.Program.Main(String [] args)
我怀疑这个问题必须出现在用户无法启动的NServiceBus发布者消息DLL中。 Howerver,我不知道如何解决这个问题。使用反汇编
- 两个NServiceBus出版商的消息DLL的体现,他们是相同的(至于引用处理器的标志和NServiceBus DLL版本):我已经看过了。
- NSB消息项目,它们都是使用.Net 3.5 Framework构建的。
我在这里疯了,已经烧了差不多一天,试图让这个工作。任何帮助将大规模赞赏。
感谢您的回复。我知道你的意思是很容易忘记一些简单而基本的东西。我实际上意识到这是因为消息汇编只是延迟签名。为了回应您的帖子,我认为第二个要点是无效的,因为IConfigureThisEndpoint实施不需要公开。可以是内部的。 – 2011-05-23 10:59:47
你是对的,它可能是内部的。我刚刚检查过它,并添加了编辑的第二个项目符号。 – 2011-05-23 12:35:59
如果您的程序集的框架版本与NServiceBus程序集之间存在不匹配的情况,即您正在使用为.NET 3.5编译的NServiceBus,但Visual Studio 2010已将您的端点(默认情况下)创建为.NET 4.0,则也会发生这种情况。 – 2011-05-23 14:03:12