2014-02-13 5 views
0

Я использую 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 ведет себя при использовании другой версии обмена в коде, чем вы пытаетесь подключиться. Пытался найти документацию, связанную с этим, но безуспешно.

Любые указатели, помощь?

ответ

1

Вы совершенно правы, в Exchange 2010 с пакетом обновления 2 (SP2) заказ изменился.

От http://msdn.microsoft.com/en-us/library/dn440952(v=exchg.150).aspx: В Exchange Online, Exchange Online как часть Office 365 и версии Exchange, начиная с Exchange 2010 с пакетом обновления 2 (SP2), элементы и папки возвращаются в порядке от самого нового до самого старого. В предыдущих версиях Exchange элементы и папки возвращаются от самых старых до новейших.

+0

@ Мими, спасибо за быстрый ответ !!!. Мне было интересно, как синхронизация работает для новых электронных писем, когда вы получаете электронные письма от самых последних до самых старых. Есть идеи?? – Sameer

+0

SyncFolderItems не работает с датами и временем для получения новых данных, он использует параметр syncState, чтобы определить, какие изменения уже знают клиенты. Поэтому, если ваш почтовый ящик уже синхронизирован, а затем вы получите новое сообщение, а затем вы вызываете SyncFolderItems, параметр syncState, который вы включаете в вызов SyncFolderItems, позволяет серверу знать, что клиент уже имел все остальные содержимое/изменения в почтовом ящике , и единственное изменение с момента последней синхронизации - это одно новое сообщение. Имеют смысл? –

+0

Yup абсолютно. Я понял, что все мое понимание SyncSate было неправильным. До сих пор я ошибочно полагал, что расчет SyncState также учитывает дату. Можете ли вы рассказать мне, как SyncState точно генерируется, чтобы определить, что нужно синхронизировать, а что нет? – Sameer

Смежные вопросы