1

Sharpeoint サーバーからすべてのドキュメント ライブラリをループする必要がありますが、サブサイトのサブサイトで失敗しました

まず、以下のメソッドを使用して SiteCollections を取得します

internal List<string> GetAllSite()
    {
        List<string> siteCollection = new List<string>();
        try
        {

            SPSecurity.RunWithElevatedPrivileges(delegate ()
            {
                SPServiceCollection services = SPFarm.Local.Services;
                foreach (SPService curService in services)
                {
                    if (curService is SPWebService)
                    {
                        SPWebService webService = (SPWebService)curService;


                        foreach (SPWebApplication webApp in webService.WebApplications)
                        {
                            foreach (SPSite sc in webApp.Sites)
                            {
                                try
                                {
                                    siteCollection.Add(sc.Url);
                                    Console.WriteLine("Do something with site at: {0}", sc.Url);
                                }
                                catch (Exception e)
                                {
                                    Console.WriteLine("Exception occured: {0}\r\n{1}", e.Message, e.StackTrace);
                                }
                            }
                        }
                    }
                }


            });
        }
        catch (Exception ex)
        {

            throw;
        }

        return siteCollection;
    }

その後、次のコードのように、戻りサイトコレクションの URL を使用してサブサイトをループします

 using (SPSite site = new SPSite(SiteCollectionUrl))
                {

                    foreach (SPWeb web in site.AllWebs)
                    {
                          //i get the subsite url from here

                    }

                }

今ここに私の問題があります。前述のように、サブサイトのサブサイトを取得したかったので、サブサイトの URL を SPSite に渡しますが、サブサイトではなく SiteCollections のみをループします

foreach (site.AllWebs 内の SPWeb Web) <-- つまり、ここでは、サブサイトの URL をパラメーターとして既に渡していますが、ここではサイトコレクション アイテムのみをループします。

4

1 に答える 1