Исключение в SubscribeToStreamingNotifications - PullRequest
0 голосов
/ 09 апреля 2019

Я получаю исключение для почтового ящика уже довольно давно, ни разу не было успешно выполнено потоковой подписки с прошлого месяца.

Исключение: Не удается подключиться к почтовому ящику пользователя guid базы данных почтовых ящиков: 67f43d90-xxxx-xxxx-xxxx-7a296a993f38, так как объект ExchangePrincipal содержит устаревшую информацию. Возможно, почтовый ящик был недавно перемещен.

Мой код для создания подписки:

 private void CreateSubscription()
        {
            var events = new List<EventType>
            {
                EventType.NewMail,
                EventType.Created,
                EventType.Deleted,
                EventType.Modified,
                EventType.Moved,
                EventType.Copied,
                EventType.FreeBusyChanged
            };

            if (_subscription != null)
            {
                ((StreamingSubscription)_subscription).Unsubscribe();
                _connection.RemoveSubscription((StreamingSubscription)_subscription);
            }

            _subscription = _exchange.SubscribeToStreamingNotifications(subscriptionFolders, events.ToArray());
            _connection.AddSubscription((StreamingSubscription)_subscription);

            if (stopwatch.IsRunning)
            {
                stopwatch.Restart();
                var e = stopwatch.ElapsedMilliseconds;
                logger.LogFatal($"Stopwatch restarted: {e}");
            }
            else
            {
                stopwatch.Start();
                var e = stopwatch.ElapsedMilliseconds;
                logger.LogFatal($"Stopwatch started: {e}");
            }
        }

Исключение возникает в следующей строке:

_subscription = _exchange.SubscribeToStreamingNotifications(subscriptionFolders, events.ToArray());

StackTrace:

Microsoft.Exchange.WebServices.Data.ServiceResponseException: The specified object was not found in the store., Can't connect to the mailbox of user Mailbox database guid: 67f43d90-xxxx-xxxx-xxxx-7a296a993f38 because the ExchangePrincipal object contains outdated information. The mailbox may have been moved recently.
   at Microsoft.Exchange.WebServices.Data.ServiceResponse.InternalThrowIfNecessary()
   at Microsoft.Exchange.WebServices.Data.MultiResponseServiceRequest`1.Execute()
   at Microsoft.Exchange.WebServices.Data.ExchangeService.SubscribeToStreamingNotifications(IEnumerable`1 folderIds, EventType[] eventTypes)
   at Mach.Omega.EwsClient.WinService.Classes.ExchangeServiceClient.CreateSubscription() in D:\Sourcecode\Mach.Omega\Sourcecode\Mach.Omega.EwsClient.WinService\Mach.Omega.EwsClient.WinService\Classes\ExchangeServiceClient.cs:line 172
   at Mach.Omega.EwsClient.WinService.Classes.ExchangeServiceClient.CreateSubscription(IEnumerable`1 subscriptionFolders) in D:\Sourcecode\Mach.Omega\Sourcecode\Mach.Omega.EwsClient.WinService\Mach.Omega.EwsClient.WinService\Classes\ExchangeServiceClient.cs:line 131
   at Mach.Omega.EwsClient.WinService.Classes.SubcriptionProcess.Subscribe() in D:\Sourcecode\Mach.Omega\Sourcecode\Mach.Omega.EwsClient.WinService\Mach.Omega.EwsClient.WinService\Classes\SubcriptionProcess.cs:line 154
   at Mach.Omega.EwsClient.WinService.EwsService.SubscriptionWorker() in D:\Sourcecode\Mach.Omega\Sourcecode\Mach.Omega.EwsClient.WinService\Mach.Omega.EwsClient.WinService\EwsService.cs:line 200
   at System.Threading.Tasks.Task.InnerInvoke()
   at System.Threading.Tasks.Task.Execute()

Обратите внимание, что я могу нормально получать письма из почтового ящика, но не могу создать потоковую подписку.

1 Ответ

0 голосов
/ 10 апреля 2019

Это OnPrem или Office365?Как правило, вы всегда должны использовать заголовок X-AnchorMailbox https://blogs.msdn.microsoft.com/webdav_101/2018/06/16/best-practices-important-and-critical-headers-for-ews/,, эта ошибка указывает на проблему маршрутизации или устаревшую информацию каталога (возможно, вызванную проблемами репликации в AD).Если его Office365, попробуйте MailboxGUID как X-AnchorMailbox https://developer.microsoft.com/en-us/office/blogs/error-improvement-for-invalid-x-anchormailbox-in-rest-api-calls/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...