1

作为我正在创建的沙盒解决方案的一部分,我有一个 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();
        }

    }
4

0 回答 0