簡體   English   中英

在大文件夾上使用FindItems的Exchange Web Services

[英]Exchange Web Services using FindItems on large folders

我一直在嘗試從剛剛超過200萬個項目的Outlook公用文件夾中檢索要刪除的項目。 但是,即使頁面大小為10,FindItems也要花很長時間才能返回,就像在查詢文件夾中的每個項目一樣。 到目前為止,兩小時后仍未返回。 有沒有辦法阻止它這樣做?

var folder = GetPublicFolder(service);
folder.Load();
var items = folder.FindItems(new ItemView(10)
    {
        Traversal = ItemTraversal.Shallow
    });

從如此大的文件夾中檢索項目的唯一方法是在查找項目並相應調整批次大小時使用PropertySet.IdOnly。 沒有超時,我也無法對此進行任何過濾。

items = folder.FindItems(new ItemView(100)
                {
                    Traversal = ItemTraversal.Shallow,
                    PropertySet = PropertySet.IdOnly
                });

service.LoadPropertiesForItems(items, new PropertySet(ItemSchema.DateTimeReceived, 
                    ItemSchema.Subject));

然后遍歷批處理,對項目進行處理,同時將加載的內容降至最低。 要處理無法過濾的問題,您只能從頂部抓取項目,因此要執行大多數將處理過的項目移至批次之間的單獨文件夾所需的所有操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM