【发布时间】:2014-01-26 05:36:57
【问题描述】:
我希望这是提问的正确地方。我尝试使用 sosial msdn,但似乎 msdn 论坛已死。我对母版页有小问题。我已经创建了 Web 模板和母版页。当我创建新的网站集并尝试访问它 (http://win2008r2/sites/Test) 时,它会向我抛出错误:“404 NOT FOUND”。
但是,当我查看 MasterPage 库时:http://win2008r2/sites/Test/_catalogs/masterpage/Forms/AllItems.aspx
我可以找到我的 Demo.master 。当我检查网站集功能时,我可以看到我的母版页功能处于活动状态。我检查了日志,这只是我发现的:获取文档时失败。 0x80070002
我已将 Web 模板范围设置为农场,并且我已将 母版页范围设置为站点。
我尝试使用 google 解决问题,并尝试了不同的指南,但我无法让它工作。谁能帮帮我?
这里是 Element.xml:
<Module Name="MyMasterPage" List="116" Url="_catalogs/masterpage">
<File Path="MyMasterPage\Demo.master" Url="Demo.master" Type="GhostableInLibrary">
</File>
</Module>
这里是事件接收器:
public override void FeatureActivated(SPFeatureReceiverProperties properties)
{
SPSecurity.RunWithElevatedPrivileges(delegate
{
using (SPWeb _web = ((SPSite)properties.Feature.Parent).RootWeb)
{
Uri _siteMaster = new Uri(string.Format("{0}/_catalogs/masterpage/Demo.master", _web.Url));
_web.MasterUrl = _siteMaster.AbsolutePath;
_web.CustomMasterUrl = _siteMaster.AbsolutePath;
_web.Update();
}
});
}
public override void FeatureDeactivating(SPFeatureReceiverProperties properties)
{
SPSite curSite = (SPSite)properties.Feature.Parent;
SPWeb curWeb = curSite.RootWeb;
Uri masterUri = new Uri(curWeb.Url + "/_catalogs/masterpage/v4.master");
curWeb.MasterUrl = masterUri.AbsolutePath;
curWeb.CustomMasterUrl = masterUri.AbsolutePath;
curWeb.Update();
}
如果你想看更多我的代码来解决这个问题,请随时提问,所以我放了更多代码。 ;)
【问题讨论】:
-
ONet.xml 文件,我添加了我的母版页:
-
此时,我已经没有任何解决问题的想法了。因此,如果有人至少知道一些事情,总比没有好。
-
不要从 SPSite.RootWeb 释放 SPWeb 对象。
-
为什么您认为问题出在母版页中?在大多数情况下,404 not found 意味着该页面未找到。那么也许您的网络模板默认页面丢失了?
标签: c# sharepoint http-status-code-404 master-pages