Обработка ошибок, связанных с уведомлениями, в EWS в ExchangeHandling notification-related errors in EWS in Exchange

Узнайте, как обрабатывать ошибки, связанные с уведомлениями, в приложениях, разрабатываемых с помощью управляемого API EWS или EWS в Exchange.Find out how to handle notification-related errors in applications that you develop by using the EWS Managed API or EWS in Exchange.

Если приложение подписывается на уведомления и получает их, может потребоваться обработка ошибок, связанных с уведомлениями.If your application subscribes to and gets notifications, you might have to handle notification-related errors. Эти ошибки можно обрабатывать во время выполнения или при разработке приложения EWS.You can handle these errors at runtime, or while you are developing your EWS application.

Таблица 1. Ошибки, связанные с уведомлениями, и способы их обработкиTable 1. Notification-related errors and how to handle them

ОшибкаError Возникает при попытке...Occurs when you try to… Обработать его по...Handle it by…
еррорексцеедедконнектионкаунтErrorExceededConnectionCount Откройте подключение, чтобы получить события, когда учетная запись достигла предельного числа открытых потоков подключения.Open a connection to get events when the account reached its connection limit of open streaming connections.
  • Использование олицетворения для открытия подключений.Using impersonation to open connections.
  • Использование меньшего числа подключений для получения событий.Using fewer connections to get events. Разверните максимальное число подписок в каждом подключении, используя сходство и поместив в одну группу не более 200 идентификаторов подписки.Maximize the number of subscriptions in each connection by using affinity and placing a maximum of 200 subscription IDs in the same group. Затем можно использовать одно и то же подключение для получения событий для всей группы, уменьшая необходимое количество подключений.You can then use the same connection to retrieve events for the entire group, reducing the number of connections required.
  • Изменение значения Хангингконнектионлимит в файле Web. config для локальной организации Exchange для переопределения значения по умолчанию для трех открытых подключений.Changing the value of the HangingConnectionLimit in the web.config file for Exchange on-premises to override the default value of three open connections. В Exchange Online используется значение по умолчанию Хангингконнектионлимит, равное 10, что не является настраиваемым.Exchange Online has a default HangingConnectionLimit of 10, which is not configurable.
еррорексцеедедсубскриптионкаунтErrorExceededSubscriptionCount Создание слишком большого числа подписок.Create too many subscriptions. Параметр политики регулирования евсмакссубскриптионс определяет максимальное количество подписок, которые могут создаваться учетной записью.The EwsMaxSubscriptions throttling policy parameter determines the maximum number of subscriptions that an account can create.
ерроринвалидсубскриптионрекуестErrorInvalidSubscriptionRequest Создание подписок для нескольких почтовых ящиков или нескольких папок из одного запроса.Create subscriptions for multiple mailboxes or multiple folders from a single request. Создание подписки для одной общедоступной папки или одного почтового ящика в едином запросе.Creating a subscription for a single public folder or a single mailbox in a single request.
ерроринвалидватермаркErrorInvalidWatermark Получение событий с использованием недопустимого водяного знака.Get events by using an invalid watermark.
  • Проверка идентификатора подписки, возвращенного в предыдущем ответе.Checking the subscription ID returned in a previous response.
  • Проверка того, что вы отправляете идентификатор подписки для правильного объекта ExchangeService .Ensuring that you're sending the subscription ID for the correct ExchangeService object.
  • Создание новой подписки.Creating a new subscription.
еррормисседнотификатионевентсErrorMissedNotificationEvents Получение событий при пропуске некоторых предыдущих событий.Get events when some previous events were missed. Сравнение свойств расширенной папки PR_LOCAL_COMMIT_TIME_MAX (0x670a) и PR_DELETED_COUNT_TOTAL (0x670b), чтобы определить, какие изменения были пропущены, и создать новую подписку.Comparing the extended folder properties PR_LOCAL_COMMIT_TIME_MAX (0x670a) and PR_DELETED_COUNT_TOTAL (0x670b) to determine what changes were missed, and creating a new subscription.
еррорпроксирекуестноталловедErrorProxyRequestNotAllowed Подпишитесь на события для пользователя в пакетном запросе, почтовый ящик которого был перемещен на другой сайт.Subscribe to events for a user in a batched request whose mailbox has moved to another site. Использование службы автообнаружения для повторного обнаружения Екстерналевсурл или евспартнерурл и создания новой подписки.Using Autodiscover to rediscover the ExternalEwsUrl or EwsPartnerUrl, and creating a new subscription.
еррорреадевентсфаиледErrorReadEventsFailed Получение событий из подписки, которые не удается найти.Get events from a subscription that cannot be found. Использование службы автообнаружения для повторного обнаружения Екстерналевсурл или евспартнерурл и создания новой подписки.Using Autodiscover to rediscover the ExternalEwsUrl or EwsPartnerUrl, and creating a new subscription.
еррорсервербусиErrorServerBusy Превышение ограничений регулирования .Exceed throttling limits. Обратите внимание на следующие вопросы регулирования.Be aware of the following regarding throttling:
  • Ограничение регулирования евсмакссубскриптионс определяет максимальное количество подписок на уведомление о принудительной или потоковой передаче, которые могут быть активными одновременно.The EwsMaxSubscriptions throttling limit identifies the maximum number of push, pull, or streaming notification subscriptions that can be active at one time. Это значение подписки на почтовые ящики, а не число отдельных подписок на папку в подписке на почтовые ящики.This is the value of mailbox subscriptions, not the number of individual folder subscriptions in a mailbox subscription. Начиная с версий почтовых ящиков 14.16.0135 и 14.15.0057.000, почтовые ящики, размещенные в Exchange Online или Exchange Online в составе Office 365, могут иметь до 20 подписок, а целевой почтовый ящик Exchange 2013 может иметь до 5000 подписок.Starting with service mailbox versions 14.16.0135 and 14.15.0057.000, a mailbox hosted by Exchange Online or Exchange Online as part of Office 365 can have up to 20 subscriptions, and a target Exchange 2013 on-premises mailbox can have up to 5000 subscriptions.
  • Ограничение регулирования евсмаксконкурренци определяет максимальное количество активных запросов для непотоковых подключений и имеет значение по умолчанию, равное 27.The EwsMaxConcurrency throttling limit identifies the maximum number of active requests for non-streaming connections and has a default value of 27.
  • По умолчанию предельное значение для открытых потоковых подключений составляет десять.The default limit for open streaming connections is ten.
еррорсубскриптионнотфаундErrorSubscriptionNotFound Получение событий для подписки, которая не может быть найдена.Get events for a subscription that cannot be found. Возможно, истек срок действия подписки, возможно, был перезапущен процесс EWS или была передана недопустимая подписка.The subscription might have expired, the EWS process might have been restarted, or an invalid subscription was passed in.
  • Проверка того, что вы используете тот же идентификатор подписки, который был возвращен в предыдущем ответе.Verifying that you're using the same subscription ID that was returned in a previous response.
  • Проверка того, что вы отправляете идентификатор подписки для правильного объекта ExchangeService .Ensuring that you're sending the subscription ID for the correct ExchangeService object.
  • Создание новой подписки.Creating a new subscription.
сервицелокалексцептионServiceLocalException Добавить подписку в новую папку, когда подключение к подписке открыто в другой папке.Add a subscription to a new folder while a subscription connection is open on another folder. Изменение подписки на подписку на все папки в почтовом ящике вместо конкретной папки.Changing your subscription to subscribe to all folders in the mailbox, instead of a specific folder.
сервицереспонсиксцептионServiceResponseException Получение событий для подписки, которые не удается найти в хранилище Exchange.Get events for a subscription that cannot be located in the Exchange store.
  • Проверка того, что вы используете тот же идентификатор подписки, который был возвращен в предыдущем ответе.Verifying that you're using the same subscription ID that was returned in a previous response.
  • Проверка того, что вы отправляете идентификатор подписки для правильного объекта ExchangeService .Ensuring that you're sending the subscription ID for the correct ExchangeService object.

Восстановление из потерянных подписокRecovering from lost subscriptions

Если подписка потеряна или более недоступна, рекомендуется создать новую подписку и не включать старую подложку в новую подписку.When a subscription is lost, or is no longer accessible, it is best to create a new subscription and not include the old watermark in the new subscription. Повторная подписка с использованием старого водяного знака приводит к появлению линейного сканирования для событий, что является затратным.Resubscribing with the old watermark causes a linear scan for events, which is costly. Вместо этого создайте новую подписку и сравните свойства папки, чтобы найти изменения содержимого, произошедшие между потерянной подпиской и новой подпиской.Instead, create a new subscription and compare folder properties to look for content changes that occurred between the lost subscription and the new subscription. Рекомендуется проверить расширенные свойства папки PR_LOCAL_COMMIT_TIME_MAX (0x670a0040) и PR_DELETED_COUNT_TOTAL (0x670b0003).The extended folder properties that we recommend that you check are PR_LOCAL_COMMIT_TIME_MAX (0x670a0040) and PR_DELETED_COUNT_TOTAL (0x670b0003). Это можно сделать, создав определение расширенного свойства.You can do this by creating an extended property definition.

См. такжеSee also