作为我正在创建的沙箱解决方案的一部分,我有一个Web配置事件接收器,它执行以下操作:
这一切似乎都在“大部分”工作,但偶尔在创建子网站时会出现以下错误消息:
错误 - 文件SitePages / Home.aspx已于2012年10月2日08:51:36 -0700由xxx @ xxx修改。
它不会一直发生,这使得理解和调试真的很奇怪。如果您在创建另一个网站后快速创建网站,似乎会发生这种情况?
任何人都可以帮助我理解为什么会发生这种情况。值得注意的是,我在SharePoint Online上,因此无法检查相关ID。
public override void WebProvisioned(SPWebEventProperties properties)
{
// Get and set child and top sites
SPWeb childSite = properties.Web;
SPWeb topSite = childSite.Site.RootWeb;
// Apply branding from top site to childsite
childSite.MasterUrl = topSite.MasterUrl;
childSite.CustomMasterUrl = topSite.CustomMasterUrl;
childSite.AlternateCssUrl = topSite.AlternateCssUrl;
childSite.SiteLogoUrl = topSite.SiteLogoUrl;
childSite.Update();
// Construct HTML for new home.aspx page
string content = "Test Content";
// Check if the newsite has a sitepages library and home.aspx
SPFile oFile = childSite.GetFile("Sitepages/Home.aspx");
if (oFile.Exists)
{
// replace page content with new html
oFile.Item["WikiField"] = content;
// Update
oFile.Item.Update();
// Delete old Default page.
SPFile oDefault = childSite.GetFile("default.aspx");
if (oDefault.Exists)
{
oDefault.Delete();
}
oDefault.Update();
}
}