NServiceBus异常记录为INFO消息

时间:2016-03-30 10:11:51

标签: nservicebus azureservicebus

我正在Azure Workersrole上运行NServiceBus端点。我现在将所有诊断信息发送到表存储。我在我的DLQ中收到消息,我无法弄清楚为什么我没有在我的表存储中记录任何异常。

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

就我而言,无法解析命令处理程序的依赖关系,因此Autofac会抛出异常。我完全明白为什么抛出异常,我只是不明白为什么他们被记录为INFO。消息最终出现在我的DLQ中,我只有一个INFO跟踪来理解原因。

有没有理由在NSB中以这种方式处理异常?

1 个答案:

答案 0 :(得分:1)

NServiceBus未将容器问题记录为错误,因为它在尝试处理邮件时发生。将尝试第一级重试和第二级重试。执行SLR时,它将记录有关重试的WARN。最终,消息将无法处理,并将记录ERROR消息。 NSB and Autofac sample可用于重现此内容。

当端点以扩展角色运行且MadDeliveryCount不足以容纳所有角色实例和每个实例将重置的重试次数时,这将导致DeliveryCount到达它&#39 ; s max,而NServiceBus端点实例仍然认为在将消息发送到错误队列并记录错误之前已尝试过。与question here类似,我建议增加MaxDeliveryCount

有一个开放的NServiceBus issue可以获得SLR计数器的原生支持。您可以在问题中添加语音。 NServiceBus(V6)的下一个版本将记录消息ID以及异常,这样您至少可以在DLQ和日志文件之间关联。