我有自定义网站定义,在配置处理程序中我使用SPWeb.ApplyWebTemplate(“我的网站定义名称”)来应用网站定义。它工作正常,但我发现应用Web模板有一些延迟。
我所做的是,在我的网站定义的内容中,我已将masterurl属性设置为/_catalogs/masterpage/MyMaster.master。现在,如果我使用此站点定义在站点文件夹下创建站点,则站点会成功创建,但在浏览时会将错误抛出为“无法找到资源”。我做了一些调查,并且知道主网址应该是服务器相对而不是网站相对。因此,在应用模板后的配置代码中,我编写代码以通过将Site的服务器相对URL添加到主URL来更新主URL。
Web.MasterUrl = Site.ServerRelativeUrl + Web.MasterUrl;
但是当我浏览网站时它没有用,我得到了同样的错误。我调试了代码,发现即使应用模板后,主URL也设置为default.master。我在调试模式中等待那个语句,发现经过一段时间(几秒)后,主URL改为我在onet中设置的URL,即MyMaster.master。
看起来ApplyWebTemplate()是一个异步方法。如何确保应用Web模板过程已完成。
感谢。
答案 0 :(得分:0)
您可以尝试在调用后为站点获取新的spWeb对象,并检查Template属性。