我有一个计时器作业,我通过它以编程方式循环浏览网站集中的每个网站,并希望获得每个网站的回收站项目。下面是我的代码 -
公共覆盖无效执行(Guid targetInstanceId){ SPSecurity.RunWithElevatedPrivileges(委托 { SPFarm 农场 = SPFarm.Local;
SPWebService service = farm.Services.GetValue<SPWebService>("");
foreach (SPWebApplication webapp in service.WebApplications)
{
foreach (SPSite site in webapp.Sites)
{
foreach (SPWeb web in site.AllWebs)
{
//Get the recycle Bin Items of the site
SPRecycleBinQuery rbQuery = new SPRecycleBinQuery();
rbQuery.ItemState = SPRecycleBinItemState.SecondStageRecycleBin;
rbQuery.RowLimit = 10000;
SPRecycleBinItemCollection actualRBItems = web.GetRecycleBinItems(rbQuery);
if (actualRBItems != null)
{ if (actualRBItems.Count != 0) {//do something} }
}}}});}
但即使在网站回收站中有项目之后,我每次都在代码中为 SPWeb.RecycleBin.Count 获得计数 0,而我能够获得带有项目的站点集合 RB SPWeb.Site.RecycleBin。有人知道吗,我的要求是从网站 coll 中的每个网站分别获取项目。任何帮助深表感谢 !!
另外,补充一下,我在事件接收器中尝试了相同的代码,它有效!是定时器工作的限制还是我的代码中的问题