0

サイト コレクション内の各 Web サイトをプログラムでループするタイマー ジョブがあり、各 Web サイトのごみ箱のアイテムを取得したいと考えています。以下は私のコードです -

public override void Execute(Guid targetInstanceId) { SPSecurity.RunWithElevatedPrivileges(delegate { 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} }

}}}});}

しかし、Web サイトのごみ箱にアイテムを入れた後でも、SPWeb.RecycleBin.Count のたびにコードでカウント 0 を取得しますが、サイト コレクション RB SPWeb.Site.RecycleBin をアイテムで取得できます。私の要件は、サイト coll 内の各 Web サイトから個別にアイテムを取得することです。どんな助けでも大歓迎です!!

また、追加するために、イベントレシーバー内で同じコードを試しましたが、動作します! それはタイマージョブの制限または私のコードの問題ですか

4

1 に答える 1