如何强制新网站集继承母版页?

时间:2009-01-28 14:33:00

标签: sharepoint master-pages wss

我有一些代码可以在SharePoint中创建新网站。浏览到新创建的站点时,将抛出File Not Found错误。如果您浏览到/_layouts/ChangeSiteMasterPage.aspx,则可以选择新的站点主站&系统主页面,网站工作正常。这篇kb文章完美地描述了我的症状:http://support.microsoft.com/kb/936908

我的问题是给出的两个(可能是三个?)解决方案,只有一个有效。如果我手动选择新的母版页,它可以正常工作。第二种解决方法是在新站点上激活发布功能。这并没有解决任何问题。

还建议将发布功能装订到我用于新网站的网站定义中。就我而言,这是STS#1(空白网站),装订发布功能并不能缓解我的问题。

任何人都知道如何整理出正确的母版页?

2 个答案:

答案 0 :(得分:2)

我们通过委托控制来做到这一点。在OnLoad中,我们调用以下方法:

private void ConfigureMasterPage(SPWeb web)
{
       string masterURL = string.Empty;
       masterURL = web.Site.ServerRelativeUrl + "/_catalogs/masterpage/XXX.master";
       masterURL = masterURL.Replace("//", "/");
       web.MasterUrl = masterURL;
       web.CustomMasterUrl = masterURL;
       web.Update();
}

不要忘记处理SPSIte和SPWeb对象,并且必须将AllowUnsafeUpdates设置为true。

希望这有帮助

答案 1 :(得分:0)

原来我只需要在其中一个生成的网站中更改主模板,然后将其另存为模板。我删除了破损的模板并将其放在原位。现在所有生成的网站都运行正常。