Обработка ошибок, связанных с уведомлениями, в EWS в Exchange
Узнайте, как обрабатывать ошибки, связанные с уведомлениями, в приложениях, разрабатываемых с помощью управляемого API EWS или EWS в Exchange.
Если приложение подписывается на уведомления и получает уведомления, может потребоваться обрабатывать ошибки, связанные с уведомлениями. Эти ошибки можно обрабатывать во время выполнения или во время разработки приложения EWS.
Таблица 1. Ошибки, связанные с уведомлениями, и способы их обработки
Error | Происходит при попытке... | Обработать его с помощью... |
---|---|---|
ErrorExceededConnectionCount | Откройте подключение, чтобы получить события, когда учетная запись достигла предела подключения открытых потоковых подключений. |
|
ErrorExceededSubscriptionCount | Создайте слишком много подписок. Параметр политики регулирования EwsMaxSubscriptions определяет максимальное количество подписок, которые может создать учетная запись. |
|
ErrorInvalidSubscriptionRequest | Создайте подписки для нескольких почтовых ящиков или нескольких папок из одного запроса. | Создание подписки для одной общедоступной папки или одного почтового ящика в одном запросе. |
ErrorInvalidWatermark | Получение событий с помощью недопустимого водяного знака. |
|
ErrorMissedNotificationEvents | Получение событий, когда были пропущены некоторые предыдущие события. | Сравнение свойств расширенных папок PR_LOCAL_COMMIT_TIME_MAX (0x670a) и PR_DELETED_COUNT_TOTAL (0x670b) для определения пропущенных изменений и создания новой подписки. |
ErrorProxyRequestNotAllowed | Подпишитесь на события для пользователя в пакетном запросе, почтовый ящик которого перемещен на другой сайт. | Использование автообнаружения для повторного обнаружения ExternalEwsUrl или EwsPartnerUrl и создания новой подписки. |
ErrorReadEventsFailed | Получение событий из подписки, которые не удается найти. | Использование автообнаружения для повторного обнаружения ExternalEwsUrl или EwsPartnerUrl и создания новой подписки. |
ErrorServerBusy | Превышение ограничений регулирования. Имейте в виду следующее, что касается регулирования:
|
|
ErrorSubscriptionNotFound | Получение событий для подписки, которую не удается найти. Возможно, срок действия подписки истек, процесс EWS может быть перезапущен или передана недопустимая подписка. |
|
ServiceLocalException | Добавьте подписку в новую папку, когда подключение к подписке открыто в другой папке. | Измените подписку на подписку на все папки в почтовом ящике, а не на определенную папку. |
ServiceResponseException | Получение событий для подписки, которая не может находиться в хранилище Exchange. |
|
Восстановление после потерянных подписок
Если подписка потеряна или больше не доступна, лучше создать новую подписку и не включать старый водяной знак в новую подписку. Повторное заполнение старым водяным знаком приводит к линейному сканированию событий, что является дорогостоящим. Вместо этого создайте новую подписку и сравните свойства папки, чтобы найти изменения содержимого, произошедшие между потерянной подпиской и новой подпиской. Свойства расширенных папок, которые рекомендуется проверять, PR_LOCAL_COMMIT_TIME_MAX (0x670a0040) и PR_DELETED_COUNT_TOTAL (0x670b0003). Это можно сделать, создав расширенное определение свойства.
См. также
- Подписки на уведомления, события почтовых ящиков и службы EWS в Exchange
- Потоковая передача уведомлений о событиях почтовых ящиков с помощью веб-служб Exchange в Exchange
- Уведомления по запросу о событиях почтовых ящиков с помощью веб-служб Exchange в Exchange
- Поддержание сходства между группой подписок и сервером почтовых ящиков в Exchange