2014-02-13 24 views
0

我正在使用Exchange_2010_SP3。SynfolderItems行爲不正常

當我使用此代碼:連接作爲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); 

試圖找出,使用不同版本的Exchange代碼的時候比你試圖連接到SyncFolderItems的行爲。試圖找到與此相關的文檔,但沒有成功。

任何指針,幫助?

回答

1

你完全正確,在Exchange 2010 SP2中,訂單已更改。

http://msdn.microsoft.com/en-us/library/dn440952(v=exchg.150).aspx:在Exchange Online中,作爲Office 365的一部分的Exchange Online和從Exchange 2010 SP2開始的Exchange版本按順序從最新到最舊返回項目和文件夾。在之前版本的Exchange中,項目和文件夾從最舊返回到最新。

+0

@ Mimi,感謝您的迅速回復!!!我想知道當你收到從最新到最舊的電子郵件時,同步如何處理新電子郵件。任何想法?? – Sameer

+0

SyncFolderItems在獲取新數據的日期和時間上不起作用,它使用syncState參數來確定客戶端已知的更改。因此,如果您的郵箱已經同步,然後您收到一條新郵件,然後調用SyncFolderItems,則SyncFolderItems調用中包含的syncState參數可讓服務器知道客戶端已經擁有郵箱中的所有其他內容/更改,而自上次同步以來唯一的變化是一條新消息。合理? –

+0

是的。我發現我對SyncSate的理解是錯誤的。直到現在,我錯誤地認爲SyncState計算也考慮了日期。你能告訴我SyncState是如何精確生成的,能夠確定需要同步什麼,什麼不需要? – Sameer