2010-02-05 3 views
3

Я полностью озадачен с этим:SharePoint Быстрый и TopNavigationBar исчезающего

У меня есть пользовательский сайт SharePoint с QuickLaunch на левом и верхнюю панели навигации (которые, конечно, отображается по умолчанию).

Этот пользовательский сайт имеет несколько подсайтов, которые все наследуют навигацию от корневого сайта.

Все работает нормально, но после повторного использования пула приложений оба меню слева и сверху исчезают, когда я вхожу в любой из сайтов в первый раз! После простого обновления все возвращается в норму, все меню видны.

После воссоздания сайта и подсайтов они ведут себя одинаково: при первом посещении - меню не видны, после обновления они видны, и они остаются видимыми до тех пор, пока я не сделаю повторный цикл пула приложений.

Иногда только одно меню (верхний бар или быстрый запуск) исчезает, а второе нормально видно, и я также думаю, что столкнулся с ситуацией, когда она исчезла при нормальном использовании сайта, а не после утилизации.

В EventLog ничего нет. Однако есть трассировка в журнале ULS. Когда быстрый запуск или верхний бар исчезает, добавляется только одна новая строка (да, только эта, отсутствие трассировки стека или любая дополнительная информация):

02/05/2010 10: 24: 19.18 w3wp.exe (0x171C) 0x17BC Windows SharePoint Services General 8kh7 High Не удается выполнить это действие. Попробуй еще раз.

Ну, в самом деле, это говорит о том, что что-то не так, что вызывает исчезновение меню. Может ли кто-нибудь помочь мне, как диагностировать это или, может быть, знает, почему эти меню исчезают?

+0

Вы когда-нибудь выясняли, что именно вызвало это? Я прочитал эту тему, но ничто не претендует на нас. Обе навигационные области будут случайным образом отображать или не отображать, случайным образом, когда я удаляю обновление в своем браузере. Через 10 минут это было хорошо для некоторых подсайтов, но не для других. Кажется, что SP становится довольно неуклюжим! – Tor

ответ

0

Gylo У вас есть функция публикации, включенная на этих сайтах? Это известная ситуация при восстановлении сохраненных шаблонов сайтов с включенной публикацией (с использованием небольшого взлома), когда верхняя навигация не будет отображаться в первый раз.

В какой версии вы работаете? (Действия сайта => Определения сайтов показывают это)

+0

Нет, функция публикации отключена. Это на MOSS 2007. Вы сказали, что это «известная ситуация», есть ли у вас какие-либо ссылки или ресурсы? Может быть, это нечто похожее. – Gylo

+0

«Известная ситуация» происходит, когда вы делаете то, что я сказал (сохранить сайт публикации в качестве шаблона, который не разрешен), вам нужно использовать небольшой трюк, а затем восстановить сайт - меню будет разбито и будет исправлено на следующем обновлении и вкл.) –

+0

ОК, спасибо за какой-то ключ, но я создаю сайт и его часть из обычного шаблона (файл ONET.XML), который является простым шаблоном, без дополнительных функций, таких как публикация. – Gylo

0

Возможно, вы перешли с навигацией в определение сайта и удалили навигационный узел с идентификатором 1002. Этот узел отвечает за сохранение веб-навигации Top, и даже если ваш веб-сайт использует общая навигация, при некоторых обстоятельствах вы получите скрытую навигацию. Проверьте, является ли ваш-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(); 
         } 
        } 
       }); 
      } 
     } 
    } 
+0

Перед выполнением любых изменений в базах данных SharePoint обратитесь к [этой статье] (https://support.microsoft.com/en-us/kb/841057). – dstarkowski

Смежные вопросы