Переместить в очередь ошибок Rebus, не вызванную после максимальных отказов сбоя - PullRequest
1 голос
/ 09 апреля 2020

Конфигурация Rebus по умолчанию, согласно вики Обработка ошибок , должна перемещать подозрительное сообщение в очередь ошибок. Этого не происходит в ситуации, когда сторонний компонент вызывает исключение переполнения стека. Основной очередью является msmq, поэтому счетчик прерывания подозрительного сообщения увеличивается.

Это происходит из-за того, что исключение / выход из приложения приводит к тому, что Rebus теряет отслеживание? Либо используйте подсчет в памяти для сбойных сообщений, либо выйдите, прежде чем учесть сообщение.

1 Ответ

1 голос
/ 09 апреля 2020

Извините, но причина, по которой Rebus не отслеживает ошибку в этом случае, заключается в том, что обычно невозможно поймать StackOverflowException в C# (*)

You ' мне не повезло, извините. ? Скажите, кто бы сделал этот сторонний компонент, чтобы исправить их рекурсию. 100


(*) Это возможно только в том случае, если CLR работает с некоторым заданным флагом c, установленным в true И, если StackOverflowException был выдан «вручную». Если исключение происходит из среды выполнения из-за фактического переполнения стека, то его невозможно отловить.

...