首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SharePoint QuickLaunch和TopNavigationBar dissapearing

SharePoint QuickLaunch和TopNavigationBar dissapearing
EN

Stack Overflow用户
提问于 2010-02-05 17:40:08
回答 2查看 4.9K关注 0票数 3

我对此感到非常困惑:

我有一个自定义的SharePoint站点,在左侧和顶部导航栏上都有QuickLaunch (当然,它们在默认情况下是可见的)。

此自定义站点有几个子站点,它们都继承了根站点的导航。

一切正常,但是在应用程序池回收之后,当我第一次进入任何一个站点时,左侧和顶部的菜单都会消失!简单刷新后,一切都恢复正常,所有菜单都可见。

重新创建站点和子站点后,它们的行为是相同的:第一次访问时,菜单不可见,刷新后它们是可见的,并且它们保持可见,直到我回收应用程序池为止。

有时只有一个菜单(顶栏或快速启动)消失,第二个菜单通常是可见的,我也认为我遇到了一种情况,当它在正常使用网站时消失,而不是在回收之后。

EventLog中没有任何内容。不过,在ULS日志中有一个跟踪。当快速启动或顶部栏消失时,只会添加一行新行(是的,只有这一行,没有堆栈跟踪或任何进一步的信息):

02/05/2010 10:24:19.18 w3wp.exe (0x171C) 0x17BC Windows SharePoint服务常规8kh7高无法完成此操作。再试试。

嗯,确实是说出了什么问题,导致菜单消失了。有没有人能帮我诊断这个问题,或者知道这些菜单消失的原因?

EN

回答 2

Stack Overflow用户

发布于 2010-02-05 21:54:15

Gylo你是否在这些网站上启用了发布功能?这是一个已知的情况,当恢复保存的网站模板并启用发布时(使用一个小技巧),顶部导航不会第一次出现。

您运行的是什么版本?(站点操作=>站点定义显示它)

票数 0
EN

Stack Overflow用户

发布于 2010-03-18 17:04:22

可能是您在网站定义中处理了导航,并删除了Id为1002的导航节点。此节点负责存储web顶级导航,即使您的web使用共享导航,您也会在某些情况下获得消失的导航。检查-web.Navigation.TopNavigationBar是否为空。如果是,那么恢复节点#1002就不是很简单了。下面是我为解决生产环境中的这个问题而写的一个补丁。先测试一下吧!

代码语言:javascript
复制
    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();
                        }
                    }
                });
            }
        }
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2206240

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档