EventHubsException — .NET
Исключение EventHubsException возникает, когда операция, связанная с Центрами событий, вызвала ошибку (в службе или клиенте).
Сведения об исключении
Исключение содержит указанные ниже контекстные сведения, помогающие понять контекст ошибки и ее относительную серьезность.
- IsTransient: определяет, возможно ли восстановление после этого исключения. Если исключение считается временным, соответствующая политика повтора уже была применена и повторные попытки завершились неудачно.
-
Reason: набор известных причин сбоев, помогающих классифицировать и уточнить основную причину. Эти причины позволяют применять фильтрацию исключений и использовать другую логику, если анализ текста сообщения об исключении не дает нужных результатов. Ниже перечислено несколько основных причин.
- Клиент закрыт: возникает, если клиент Центра событий уже закрыт или удален. Рекомендуется проверить код приложения, чтобы убедиться, что объекты из клиентской библиотеки Центра событий создаются и закрываются в предполагаемой области.
- Время ожидания службы: указывает, что служба Центров событий не ответила на операцию в течение ожидаемого периода. Эта проблема могла быть вызвана временной неполадкой сети или проблемой службы. Служба Центров событий могла успешно выполнить или не выполнить запрос; результирующее состояние неизвестно. Рекомендуется проверить текущее состояние и при необходимости повторить попытку.
- Превышена квота: указывает, что для одной группы потребителей слишком много активных операций чтения. Это ограничение зависит от уровня пространства имен Центров событий и в этом случае может потребоваться перейти на более высокий уровень. В качестве альтернативы можно создать дополнительные группы потребителей, чтобы число операций чтения клиента потребителя для любой группы было в пределах ограничений. Дополнительные сведения доступны в документации по квотам и ограничениям Центрам событий Azure.
- Превышен размер сообщения: данные о событии превысили максимальный размер, допустимый для отдельного события или для пакета событий. Размер включает данные события, а также все связанные метаданные и системные служебные данные. Чтобы устранить эту ошибку, сократите число событий, отправляемых в одном пакете, или уменьшите размер данных, содержащихся в сообщении. Поскольку ограничения размера могут меняться, конкретные значения см. в квотах и ограничениях для Центров событий Azure.
- Потребитель отключен: клиент потребителя был отключен от службы Центров событий из ее экземпляра. Обычно это происходит, когда потребитель с более высоким уровнем владельца перехватывает права владения секцией и связями групп потребителей.
- Ресурс не найден: службе Центров событий не удалось найти ресурс, например концентратор событий, группу потребителей или секцию. Возможно, он уже удален или возникла ошибка в самой службе Центров событий.
Обработка исключений
Отреагировать на ту или иную причину сбоя для исключения EventHubException можно несколькими способами. Один из вариантов — добавить фильтрацию по исключениям в блок catch.
try
{
// Read events using the consumer client
}
catch (EventHubsException ex) when
(ex.Reason == EventHubsException.FailureReason.ConsumerDisconnected)
{
// Take action based on a consumer being disconnected
}
Дальнейшие действия
Существуют и другие исключения, описанные в этой статье об устаревшей версии. Некоторые из них относятся только к устаревшей версии клиентской библиотеке .NET для Центров событий.