作为我正在创建的沙盒解决方案的一部分,我有一个 Web 配置的事件接收器,它执行以下操作:
- 更新新网站品牌以匹配根网站
- 更新默认的 sitepages/home.aspx(如果存在)
- 删除 OOTB default.aspx(如果站点有站点页面/主页)
这一切似乎大部分时间都在工作,但偶尔在创建子站点时会出现以下错误消息:
错误 - 文件 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();
}
}