Nservicebus N服务总线异常记录为信息消息

Nservicebus N服务总线异常记录为信息消息,nservicebus,azureservicebus,Nservicebus,Azureservicebus,我正在Azure Workerrole上运行NServiceBus端点。此时,我将所有诊断发送到表存储。我在DLQ中收到消息,我不明白为什么我的表存储中没有记录任何异常 事实证明,NSB将异常记录为信息,这就是为什么我无法在所有实际详细记录之间轻松发现它们的原因 在我的例子中,无法解析命令处理程序的依赖项,因此Autofac会引发异常。我完全明白为什么会抛出异常,我只是不明白为什么它们被记录为信息。消息最终出现在我的DLQ中,我只有一个信息跟踪来了解原因 在NSB中以这种方式处理异常有什么原因吗

我正在Azure Workerrole上运行NServiceBus端点。此时,我将所有诊断发送到表存储。我在DLQ中收到消息,我不明白为什么我的表存储中没有记录任何异常

事实证明,NSB将异常记录为信息,这就是为什么我无法在所有实际详细记录之间轻松发现它们的原因

在我的例子中,无法解析命令处理程序的依赖项,因此Autofac会引发异常。我完全明白为什么会抛出异常,我只是不明白为什么它们被记录为信息。消息最终出现在我的DLQ中,我只有一个信息跟踪来了解原因


在NSB中以这种方式处理异常有什么原因吗?

NServiceBus没有将容器问题记录为错误,因为它是在尝试处理消息的过程中发生的。将尝试第一级重试和第二级重试。执行SLR时,它将记录重试的警告。最终,消息处理将失败,并记录错误消息。可以用来复制这个

当endpoint使用扩展的角色运行,并且不够大,无法容纳所有角色实例,并且每个实例将容纳的重试计数,这将导致
DeliveryCount
达到最大值,而NServiceBus端点实例在将消息发送到错误队列并记录错误之前仍认为有尝试。与此类似,我建议增加
MaxDeliveryCount


对单反计数器的本机支持是开放的。你可以发表自己的意见。下一版本的NServiceBus(V6)将记录消息id和异常,以便您至少可以在DLQ中的消息和日志文件之间建立关联。

NServiceBus不会将容器问题记录为错误,因为它是在尝试处理消息的过程中发生的。将尝试第一级重试和第二级重试。执行SLR时,它将记录重试的警告。最终,消息处理将失败,并记录错误消息。可以用来复制这个

当endpoint使用扩展的角色运行,并且不够大,无法容纳所有角色实例,并且每个实例将容纳的重试计数,这将导致
DeliveryCount
达到最大值,而NServiceBus端点实例在将消息发送到错误队列并记录错误之前仍认为有尝试。与此类似,我建议增加
MaxDeliveryCount


对单反计数器的本机支持是开放的。你可以发表自己的意见。NServiceBus(V6)的下一个版本将记录消息id和异常,以便您至少可以在DLQ中的消息和日志文件之间建立关联。

当您说“原来NSB将异常记录为信息”时,您是指处理程序未能加载异常还是实际上所有异常?若加载处理程序并引发异常,则会将其记录为错误。您能澄清一下吗?我的意思是,未能加载的处理程序在日志中显示为一个信息:2016-03-31 08:32:45.910 INFO NServiceBus.Unicast.Transport.TransportReceiver未能处理消息Autofac.Core.DependencyResolutionException:没有在上找到“Autofac.Core.Activators.Reflection.DefaultConstructorFinder”的构造函数可以使用可用的服务和参数调用“CommandHandler”类型。我希望这会记录为错误,而不是信息。当您说“原来NSB将异常记录为信息”时,您是指handler未能加载异常还是实际上所有异常?若加载处理程序并引发异常,则会将其记录为错误。您能澄清一下吗?我的意思是,未能加载的处理程序在日志中显示为一个信息:2016-03-31 08:32:45.910 INFO NServiceBus.Unicast.Transport.TransportReceiver未能处理消息Autofac.Core.DependencyResolutionException:没有在上找到“Autofac.Core.Activators.Reflection.DefaultConstructorFinder”的构造函数可以使用可用的服务和参数调用“CommandHandler”类型,我希望这会记录为错误,而不是信息。