SharePoint QuickLaunch和TopNavigationBar取消共享
我对此完全感到困惑: 我有一个自定义的SharePoint网站,其左侧和顶部导航栏上都有QuickLaunch(默认情况下是可见的) 此自定义站点有多个子站点,它们都从根站点继承导航 一切正常,但在应用程序池回收后,当我第一次进入任何一个站点时,左侧和顶部的菜单都消失了!简单刷新后,一切恢复正常,所有菜单都可见 在重新创建站点和子站点之后,它们的行为是相同的:第一次访问时,菜单不可见,刷新后,菜单可见,并且在我回收应用程序池之前一直可见 有时只有一个菜单(顶栏或快速启动)消失,而第二个菜单通常可见,我还认为我遇到了这样的情况:它在网站正常使用期间消失,而不是在回收之后 事件日志中没有任何内容。不过,ULS日志中有一个跟踪。当快速启动或顶栏消失时,仅添加一行新行(是,仅此行,无堆栈跟踪或任何其他信息): 2010年5月2日10:24:19.18 w3wp.exe(0x171C)0x17BC Windows SharePoint Services常规8kh7高无法完成此操作。再试一次SharePoint QuickLaunch和TopNavigationBar取消共享,sharepoint,menu,navigation,logging,Sharepoint,Menu,Navigation,Logging,我对此完全感到困惑: 我有一个自定义的SharePoint网站,其左侧和顶部导航栏上都有QuickLaunch(默认情况下是可见的) 此自定义站点有多个子站点,它们都从根站点继承导航 一切正常,但在应用程序池回收后,当我第一次进入任何一个站点时,左侧和顶部的菜单都消失了!简单刷新后,一切恢复正常,所有菜单都可见 在重新创建站点和子站点之后,它们的行为是相同的:第一次访问时,菜单不可见,刷新后,菜单可见,并且在我回收应用程序池之前一直可见 有时只有一个菜单(顶栏或快速启动)消失,而第二个菜单通常可
事实上,它说有什么地方出了问题,导致菜单消失了。有谁能帮我诊断一下,或者知道为什么这些菜单会消失吗?Gylo您在这些网站上启用了发布功能吗?这是一种已知的情况,当恢复已保存的站点模板并启用发布时(使用小技巧),顶部导航将不会第一次出现
你正在运行哪个版本?(Site Actions=>Site Definitions显示了它)可能是您在Site definition中弄乱了导航,并删除了Id为1002的导航节点。此节点负责存储web顶部导航,即使您的web使用共享导航,在某些情况下您也会获得导航。 检查您的-web.Navigation.TopNavigationBar是否为空。如果是,那么恢复节点#1002并不是很简单。下面是我为解决生产环境中的此问题而编写的修补程序。先测试一下
public override void FeatureActivated(SPFeatureReceiverProperties properties)
{
SPSite site = properties.Feature.Parent as SPSite;
using (SPWeb web = site.OpenWeb("/information"))
{
if (web.Navigation.TopNavigationBar == null)
{
List<SPContentDatabase> contentdatabases = new List<SPContentDatabase>();
SPSecurity.RunWithElevatedPrivileges(delegate()
{
SPNavigationNode node = new SPNavigationNode("", web.ServerRelativeUrl, false);
web.AllowUnsafeUpdates = true;
try
{
SPNavigationNodeCollection navigationNodes = null;
navigationNodes = web.Navigation.GlobalNodes;
navigationNodes.AddAsFirst(node);
}
finally
{
web.AllowUnsafeUpdates = false;
}
SPContentDatabase database = site.ContentDatabase;
using (SqlConnection con = new SqlConnection(database.DatabaseConnectionString))
{
con.Open();
using (SqlCommand command = con.CreateCommand())
{
command.CommandText = string.Format(@"UPDATE NavNodes
SET Url='', Eid={0}, ElementType=1, DocId=NULL
WHERE Eid={1}
and WebId='{2}'
and SiteId='{3}'",
1002,
node.Id,
web.ID.ToString(),
site.ID.ToString()
);
command.ExecuteNonQuery();
}
}
});
}
}
}
public override void功能已激活(SPFeatureReceiverProperties)
{
SPSite site=properties.Feature.Parent作为SPSite;
使用(SPWeb=site.OpenWeb(“/information”))
{
if(web.Navigation.TopNavigationBar==null)
{
List contentdatabases=new List();
SPSecurity.runWithLevelatedPrivileges(委托()
{
SPNavigationNode=新的SPNavigationNode(“”,web.ServerRelativeUrl,false);
web.AllowUnsafeUpdates=true;
尝试
{
SPNavigationNodeCollection navigationNodes=null;
navigationNodes=web.Navigation.GlobalNodes;
navigationNodes.AddAsFirst(节点);
}
最后
{
web.AllowUnsafeUpdates=false;
}
SPContentDatabase=site.ContentDatabase;
使用(SqlConnection con=newsqlconnection(database.DatabaseConnectionString))
{
con.Open();
使用(SqlCommand=con.CreateCommand())
{
command.CommandText=string.Format(@“更新导航节点”
设置Url='',Eid={0},ElementType=1,DocId=NULL
其中Eid={1}
和WebId='{2}'
和SiteId='{3}',
1002,
node.Id,
web.ID.ToString(),
site.ID.ToString()
);
command.ExecuteNonQuery();
}
}
});
}
}
}
否,发布功能已禁用。这是莫斯2007。你说这是一个“已知情况”,你有任何链接或资源吗?可能是类似的。当你按照我说的做时,“已知情况”就会发生(将发布网站保存为模板,这是不允许的--你需要使用一个小技巧,然后恢复网站--菜单将被破坏,并在下次刷新时修复)好的,谢谢你提供一些线索,但是我创建了这个网站,它是从一个普通模板(ONET.XML文件)创建的,这是一个简单的模板,没有启用发布之类的额外功能。你有没有弄清楚到底是什么原因造成的?我已经通读了这篇文章,但没有任何一篇文章对我们适用。当我在浏览器中点击“刷新”时,两个导航区域将随机渲染或不渲染。10分钟后,对某些子网站而言,这是正常的,但对其他子网站而言则不然。似乎SP变得非常不稳定!在对SharePoint数据库执行任何更改之前,请参阅。