При работе с подписями подписок на папки календарей Office365 я получаю много сообщений ErrorReadEventsFailed
в запросе SendNotification
. Эта ошибка по существу означает, что подписка больше не найдена, и сервер больше не должен ожидать новых уведомлений.
Проверка Рекомендуемая Microsoft обработка ошибок, решение заключается в использовании автообнаружения для повторного открытия ExternalEwsUrl или EwsPartnerUrl и создания новой подписки.
В Office365 служба AutoDiscovery кажется почти невозможной с комбинацией учетных записей службы OAuth2, поэтому я использовал https://outlook.office365.com/EWS/Exchange.asmx
в качестве основной конечной точки EWS.
Однако, когда я пытаюсь создать новую подписку для конкретной папки календаря, я продолжаю получать общую ошибку 500 ErrorNoRespondingCASInDestinationSite
:
Веб-службы Exchange в настоящее время недоступны для этого запроса, поскольку ни один из серверов клиентского доступа на целевом сайте не может обработать запрос.
Странная часть , это происходит только после получения начальной ошибки ErrorReadEventsFailed
. Если я попробую снова, скажем, 30 секунд, запрос пройдет без проблем.
После некоторых исследований казалось, что большинству пользователей было полезно убедиться, что заголовок X-AnchorMailbox
был правильно настроен для пользователя, который учетная запись службы хочет выдавать за себя. Я дважды проверил этот заголовок, и он действительно отправляется по запросу для повторной отправки.
Эта проблема может быть разрешена экспоненциальным отключающим решением или просто повторить X количество раз, пока запрос не пройдет. Мне кажется, что когда подписка становится "потерянной", службе O365 требуется время для изменения DNS сервера Exchange (это единственное, о чем я могу думать).
Любая помощь будет принята с благодарностью!