У меня есть требование зацикливать все библиотеки документов с сервера 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 (SPWeb web на site.AllWebs) ‹- я имею в виду здесь, здесь будет только цикл моего элемента коллекции sitecollection, хотя я уже передал свой URL-адрес дочернего сайта в качестве параметров