是否可以获取 SharePoint 服务器的网站集列表
本文关键字:网站 列表 服务器 SharePoint 获取 是否 | 更新日期: 2023-09-27 18:32:55
我正在尝试获取 SharePoint 服务器上网站集列表的完整输出,以便我可以枚举它们并收集数据。我找到了以下代码:
foreach (SPWebApplication wa in SPWebService.ContentService.WebApplications)
{
foreach (SPSite sc in wa.Sites)
{
try
{
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);
}
finally
{
sc.Dispose();
}
}
}
但不幸的是,这引发了以下错误:
System.NullReferenceException:对象引用未设置为实例 的对象。
是否有可能的方法执行此操作,或者我是否必须提供服务器名称(即使我直接在 SharePoint 服务器上运行此代码?
我认为SPWebservice.ContentService并没有为您提供所有服务,因此也不是所有的WebApps,这段代码对我来说运行良好:
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
{
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);
}
}
}
}
}