0
我嘗試清除Sharepoint中的一個非常大的列表。由於共享點緩慢的刪除機制,我決定從該列表中保存一個模板(沒有數據),刪除該列表,然後從該模板創建一個新列表。的是,代碼如下:在Sharepoint中創建列表需要時間
public static void TruncateList(SPList list)
{
SPSecurity.RunWithElevatedPrivileges(delegate()
{
using (SPSite site = new SPSite(list.ParentWeb.Site.ID))
{
using (SPWeb web = site.OpenWeb())
{
web.AllowUnsafeUpdates = true;
SPList listCopy = web.Lists[list.ID];
string title = listCopy.Title;
string description = listCopy.Description;
string backupName = string.Format("BACKUP_{0}", title);
// Delete old Template if exists:
SPList gallery = web.Lists["List Template Gallery"];
foreach (SPListItem item in gallery.Items)
{
if (item.Title == backupName)
{
item.Delete();
break;
}
}
// Save Template:
listCopy.SaveAsTemplate(backupName, backupName, string.Empty, false);
// Load Template:
SPListTemplate template = web.Site.GetCustomListTemplates(web)[backupName];
template = web.ListTemplates[backupName];
// Delete List:
listCopy.Delete();
// Add empty List from Template: [HANGS HERE!]
web.Lists.Add(title, description, template);
web.Update();
web.AllowUnsafeUpdates = false;
}
);
}
}
}
保存模板正常工作,以及刪除原始表(listCopy.Delete()),這需要一段時間
但是,試圖再次創建列表時( web.Lists.Add)服務器被卡住,直到它在幾分鐘後得到超時異常。
有用的提到:這是我的開發者機器。沒有人,但我的訪問由自己解決,網頁/列表
你的ULS日誌中有什麼有趣的東西? – 2012-08-08 16:29:53