У меня есть программа.Он подключается к EWS, запрашивает изменения в определенной папке по EWSID, обрабатывает эти изменения и затем продолжает тот же поток, пока не останется никаких изменений.Проблема в том, что это, кажется, бесконечный цикл.С локальным обменом все работало нормально, но после того, как мы перешли в облако (Office365), возникла проблема.
с использованием следующего кода:
MailProcessorResponse ret = new MailProcessorResponse();
ret.SyncState = syncState;
try
{
service = new ExchangeService(ExchangeVersion.Exchange2010);
service.Credentials = new NetworkCredential("Office365example@domain.com", "Password123");
service.Url = new Uri(@"https://outlook.office365.com/EWS/Exchange.asmx");
ChangeCollection<ItemChange> changes = service.SyncFolderItems(new FolderId(folderId), set, null, 512, SyncFolderItemsScope.NormalItems, ret.SyncState);
while (changes.MoreChangesAvailable)
{
createdOnly = changes.Where(x => x.ChangeType == ChangeType.Create);
ProcessChanges(createdOnly, ret, country);
ret.SyncState = changes.SyncState;
changes = service.SyncFolderItems(new FolderId(folderId), set, null, 512, SyncFolderItemsScope.NormalItems, ret.SyncState);
}
createdOnly = changes.Where(x => x.ChangeType == ChangeType.Create);
ProcessChanges(createdOnly, ret, country);
ret.SyncState = changes.SyncState;
}
}
catch (Exception ex)
{
ret.Exceptions.Add(ex);
Libs.Logger.Write(ex);
}
return ret;
}
Параметр syncState является входом для метода.- последнее обновление было до того, как мы перешли в облако.
Параметр folderID - это идентификатор папки EWS.Это также вход в метод.
У кого-нибудь есть идеи, что не так или что я скучаю?