移动到最大中止失败后未触发的 Rebus 错误队列

Move to Rebus error queue not triggered after maximum abort failures

根据 error handling wiki,默认的 Rebus 配置应该将有毒消息移至错误队列。在第三方组件导致 Whosebug 异常的情况下不会发生这种情况。底层队列是 msmq,因此中毒消息中止计数器递增。

此行为是因为应用程序 exception/exit 导致 Rebus 失去跟踪吗?对失败的消息使用内存计数或在计算消息之前退出。

抱歉,Rebus 在这种情况下没有跟踪错误的原因是 it's generally not possible to catch WhosebugException in C#(*)

对不起,你运气不好。告诉制作该第 3 方组件的人修复他们的递归。


(*) 只有在 CLR 运行 某些特定标志设置为真并且 WhosebugException 被抛出 "manually" 时才有可能。如果异常是由于实际堆栈溢出而来自运行时,则无法捕获。