针对.NET 4.0框架编译和调试的NServiceBus FullDuplex示例引发异常

时间:2010-04-08 06:39:36

标签: .net-4.0 nservicebus

我刚安装了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:

4 个答案:

答案 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框架?