Мы используем библиотеку AmqpNetLite для подключения к очереди Azure. У нас есть проблема, когда иногда подписчик в очереди, созданной с помощью ReceiverLink
, прекращает прием сообщений. Рекомендуется подписаться на события Close объекта AMQP и восстановить соединение. Однако события Close никогда не появляются. Сценарий воспроизведения вопроса:
- Создать
ReceiverLink
и подписаться на очередь.
- Потяните сетевой кабель, чтобы отключить соединение.
- После ожидания после нескольких SEND (ch = 0) пустых записей журнала подключите кабель обратно. После этого сценария обратный вызов сообщения о соединении получателя больше никогда не вызывается. Кроме того, событие Close также никогда не принимается.
Также попытался установить IdleTimeOut
. Я вижу событие в журнале журнала подключений, но, как объяснено выше, обработчик событий никогда не вызывается.