2012-04-23 65 views
0

我一直在试图从超过200万个项目的Outlook公用文件夹中检索删除项目。但是,即使页面大小为10,FindItems也会永久返回,就像查询文件夹中的每个项目一样。到目前为止,2小时后还没有返回。有没有办法阻止它这样做?在大型文件夹上使用FindItems交换Web服务

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

Exchange Server 2007 – zclark 2012-04-23 06:13:55

回答

0

只从一个文件夹这个大项中检索的方法是使用PropertySet.IdOnly同时找到的项目,并相应地调整你的批量大小。如果没有超时,我也无法对此进行任何过滤。

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

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

然后迭代批处理,并在保持所加载的最小值的情况下对项进行操作。要做到无法过滤,只能抓取顶部的项目,所以要做大部分工作,需要将处理后的项目移动到批次之间的单独文件夹中。

+0

您是否能够削减大量时间? – Chandrew 2014-05-19 15:21:51

相关问题