我刚安装了VS2010 RC并从NServiceBus 2.0.0.1145启动了FullDuplex样本,运行正常。然后我将解决方案中每个项目的目标框架更改为“.NET Framework 4”,在调试器中重新编译并启动,并收到以下异常:
System.InvalidOperationException未处理 消息=在扫描的程序集中找不到端点配置。当NServiceBus无法加载包含IConfigureThisEndpoint的程序集时,通常会发生这种情况。尝试使用appsetting键在NServiceBus.Host.exe.config中显式指定类型:EndpointConfigurationTypeScanned path:C:\ Development \ Personal \ ThirdParty \ NServiceBus \ samples \ FullDuplex \ MyClient \ bin \ Debug \ 来源= NServiceBus.Host 堆栈跟踪: 位于d:\ BuildAgent-02 \ work \ 672d81652eaca4e1 \ src \ host \ NServiceBus.Host \ Program.cs中的NServiceBus.Host.Program.ValidateEndpoints(IEnumerable`1 endpointConfigurationTypes):第189行 位于d:\ BuildAgent-02 \ work \ 672d81652eaca4e1 \ src \ host \ NServiceBus.Host \ Program.cs中的NServiceBus.Host.Program.GetEndpointConfigurationType():第171行 位于d:\ BuildAgent-02 \ work \ 672d81652eaca4e1 \ src \ host \ NServiceBus.Host \ Program.cs中的NServiceBus.Host.Program.Main(String [] args):第32行 InnerException:
答案 0 :(得分:4)
您必须在 NServiceBus.Host.exe.config
中提供正确支持的运行时版本例如:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="EndpointConfigurationTypeScanned" value="d:\w\ServiceBusTest\"/>
</appSettings>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>
</configuration>
答案 1 :(得分:1)
错误实际上是在说一切:)
通用主机无法找到端点配置,可能是因为它无法动态发现和加载.NET 4程序集。
您可能需要查看NServiceBus源代码并自行构建它以使其正常工作。
答案 2 :(得分:1)
我遇到了这个问题,发现NServiceBus.Host.exe的“启动外部程序”路径不是我的程序集所在的文件夹,因此意味着找不到任何端点。在这种情况下,有两个选项指向bin文件夹中的NServiceBus.Host.exe或使用menty的答案并在配置中添加EndpointConfigurationTypeScanned。
答案 3 :(得分:0)
我从未能完全解决这个问题。我首先必须转换所有NSB项目以将目标框架设置为4.0。然后我升级到最新的ilmerge并将其必要的参数添加到构建脚本中。接下来,我必须更新NAnt和NUnit配置文件以使用4.0。我终于能够获得成功的构建和ilmerge但是现在我在使用新编译的库执行升级的FullDuplex示例时得到了与TopShelf的框架版本相关的错误。
我假设我必须获得更新的TopShelf二进制文件或获取源代码并自己构建它来对抗4.0框架,但我在上周没能看到它。
Andreas,有没有计划在不久的将来将NSB项目本身更新到4.0框架?