根据error handling Wiki,默认的Rebus配置应将有毒消息移至错误队列。在第三方组件导致stackoverflow异常的情况下不会发生这种情况。基础队列为msmq,因此加毒消息中止计数器增加。
这是因为应用程序异常/退出导致Rebus失去跟踪吗?对失败的消息使用内存中计数,或者在对消息进行计费之前退出。
抱歉,在这种情况下Rebus无法跟踪错误的原因是it's generally not possible to catch StackOverflowException
in C#(*)
抱歉,您在这里不走运。 😐告诉构成第三方组件的任何人以修复其递归。 😁
(*)仅当CLR在某些特定标志设置为true的情况下运行并且StackOverflowException
被“手动”抛出时才可能。如果异常是由于实际的堆栈溢出导致的运行时异常,则无法捕获。