我必须在我的控制台应用程序中从 Sharepoint 的所有站点/子站点读取共享文档,该应用程序将在安装 Sharepoint 的同一台机器上运行,但它将基于 .Net Framework 4.0。我相信,Sharepoint Server Objects 是基于 Framework 3.5,所以我想出了创建自定义 Web 服务的想法,该服务读取和返回文档列表。我创建了本博客中提到的自定义服务,它运行良好。这是我在我的一种 Web 服务方法中读取文档的代码。
SPWebApplication webApp = SPContext.Current.Site.WebApplication;
#region Traverse all sub sites
foreach (SPSite subSite in webApp.Sites)
{
using (SPWeb sWeb = subSite.OpenWeb())
{
foreach (SPList list in sWeb.Lists)
{
if (list.BaseType == SPBaseType.DocumentLibrary &&
list.Hidden == false && list.BaseTemplate == SPListTemplateType.DocumentLibrary &&
list.Title.Equals("Style Library", StringComparison.InvariantCultureIgnoreCase) == false &&
list.Title.Equals("Site Assets", StringComparison.InvariantCultureIgnoreCase) == false)
但是,一旦我到达下一行“ foreach(sWeb.Lists 中的SPList 列表) ”,它就会抛出“ 'System.Threading.ThreadAbortException' ”类型的异常
即使我尝试让列表计数高于此 foreach 循环sWeb.Lists.count,它仍然会引发相同的异常。请帮助我在这里做错了什么?