0

我想将我的 NServiceBus 6.0 应用程序“连接”到 ServiceInsight。因此,我使用 NuGet 包管理器将 Nsb6.Heartbeat、Nsb6.CustomChecks 和 Nsb6.SagaAudit dll 安装到我的解决方案中。在过去,这是足够的配置,我的消息和传奇细节出现在 ServiceInsight 中。但是现在使用版本 6(...仍处于测试阶段),这不再起作用,并且我收到以下错误消息:

2016-06-06 13:17:34.385 WARN ServiceControl.Plugin.Nsb6.Heartbeat.Heartbeats 无法将心跳发送到 ServiceControl:System.ArgumentNullException:Der Wert darf nicht NULL sein。参数名称:destination bei NServiceBus.Guard.AgainstNullAndEmpty(String argumentName, String value) in C:\Build\src\NServiceBus.Core\Utils\Guard.cs:Zeile 36.
bei NServiceBus.Routing.UnicastAddressTag..ctor(String destination)在 C:\Build\src\NServiceBus.Core\Routing\UnicastAddressTag.cs​​:Zeile 15。
bei ServiceControl.Plugin.ServiceControlBackend.d__1.MoveNext() in C:\Build\src\ServiceControl.Plugin.Nsb6.Heartbeat\ServiceControlBackend.cs:Zeile 54. --- Ende der Stapelüberwachung vom vorhergehenden Ort, an dem die Ausnahme ausgelöst wurde --- 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务) 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务) 在 ServiceControl.Plugin.Nsb6.Heartbeat.Heartbeats.HeartbeatStartup.d__7.MoveNext()在 C:\Build\src\ServiceControl.Plugin.Nsb6.Heartbeat\Heartbeats.cs:Zeile 148。

抱歉,该消息包含德语术语 - 但您可能会了解例外情况。我是否必须提供有关目的地的一些额外信息?

我正在使用的版本:

  • NServiceBus 6.0.0-beta3

  • NServiceBus.Host 7.0.0-beta2

  • ServiceControl.Plugin.Nsb6.Heartbeat 1.0.0-beta2

  • 服务控制 1.16.0

  • 服务洞察 1.5.6

这是我的端点配置:

endpointConfiguration.UseSerialization<JsonSerializer>();
endpointConfiguration.EnableInstallers();
endpointConfiguration.SendFailedMessagesTo("error");            
endpointConfiguration.AuditProcessedMessagesTo("audit");
endpointConfiguration.UsePersistence<InMemoryPersistence>();
var transport = endpointConfiguration.UseTransport<MsmqTransport>();
transport.Transactions(TransportTransactionMode.TransactionScope);
4

1 回答 1

1

我终于可以通过将以下配置添加到我的 app.config 文件来解决这个问题:

 <appSettings>
   <add key="ServiceControl/Queue" value="particular.servicecontrol"/>
 </appSettings>

当我还添加了 ServiceControl.Plugin.Nsb6.SagaAudit dll 时,我为我找到了解决方案。现在不再有警告,现在出现错误:

2016-06-07 13:58:23.008 错误 NServiceBus 此端点无法联系 ServiceControl 后端以报告端点信息。您已在端点中安装了 ServiceControl 插件。但是,请确保在这台机器上安装了特定的 ServiceControl 服务,或者如果在不同的机器上运行 ServiceControl,请确保您的端点的 app.config/web.config、AppSettings 具有以下键设置适当:ServiceControl/Queue。例如:附加详细信息:{0} System.ArgumentNullException: Der Wert darf nicht NULL sein。参数名:destination bei NServiceBus.Guard.AgainstNullAndEmpty(String argumentName, String value) in C:\Build\src\NServiceBus.Core\Utils\Guard.cs:Zeile 36. bei NServiceBus.Routing.UnicastAddressTag..ctor(String destination)在 C 中:

错误文本具有误导性,因为它实际上表明仅当 ServiceControl 安装在另一台计算机上时才需要配置。显然情况并非如此,即使您连接到本地主机上的 ServiceControl,您也必须添加配置。

于 2016-06-07T12:02:58.260 回答