Я использую Exchange_2010_SP3.SynfolderItems ведут себя беспорядочно
Когда я использую этот код: connect как exchange2010_SP1, возвращаются самые старые элементы. Это то, что я ожидал
exchangeService = new ExchangeService(ExchangeVersion.Exchange2010_SP1,
TimeZoneInfo.Utc);
var items = exchangeService.SyncFolderItems(_folderId, PropertySet.IdOnly, null,
Configuration.BatchSize,
SyncFolderItemsScope.NormalItems,
null);
Но когда я инициализирую exchangeService как SP2, будут возвращены последние элементы. (Это вызвало у меня неожиданность).
exchangeService = new ExchangeService(ExchangeVersion.Exchange2010_SP2,
TimeZoneInfo.Utc);
var items = exchangeService.SyncFolderItems(_folderId, PropertySet.IdOnly, null,
Configuration.BatchSize,
SyncFolderItemsScope.NormalItems,
null);
Пытаясь выяснить, как SyncFolderItems ведет себя при использовании другой версии обмена в коде, чем вы пытаетесь подключиться. Пытался найти документацию, связанную с этим, но безуспешно.
Любые указатели, помощь?
@ Мими, спасибо за быстрый ответ !!!. Мне было интересно, как синхронизация работает для новых электронных писем, когда вы получаете электронные письма от самых последних до самых старых. Есть идеи?? – Sameer
SyncFolderItems не работает с датами и временем для получения новых данных, он использует параметр syncState, чтобы определить, какие изменения уже знают клиенты. Поэтому, если ваш почтовый ящик уже синхронизирован, а затем вы получите новое сообщение, а затем вы вызываете SyncFolderItems, параметр syncState, который вы включаете в вызов SyncFolderItems, позволяет серверу знать, что клиент уже имел все остальные содержимое/изменения в почтовом ящике , и единственное изменение с момента последней синхронизации - это одно новое сообщение. Имеют смысл? –
Yup абсолютно. Я понял, что все мое понимание SyncSate было неправильным. До сих пор я ошибочно полагал, что расчет SyncState также учитывает дату. Можете ли вы рассказать мне, как SyncState точно генерируется, чтобы определить, что нужно синхронизировать, а что нет? – Sameer