2010-02-05 8 views
3

을 dissapearing 나는이 완전히 의아해입니다 :셰어 빠른 실행과 TopNavigationBar이

나는 왼쪽 (기본적으로 물론 볼 수 있습니다) 상단 네비게이션 바에서 빠른 실행과 사용자 지정 SharePoint 사이트가 있습니다.

이 사용자 지정 사이트에는 루트 사이트에서 탐색을 상속하는 여러 하위 사이트가 있습니다.

모든 것이 잘 작동하지만, 처음으로 사이트를 입력 할 때 응용 프로그램 풀 재활용 후 왼쪽과 위로 모두 메뉴가 사라집니다! 간단한 새로 고침 후 모든 것이 정상으로 돌아오고 모든 메뉴가 표시됩니다.

사이트 및 하위 사이트를 다시 만든 후 동일하게 작동합니다. 처음 방문시 - 메뉴가 표시되지 않고 새로 고침 후 표시되며 응용 프로그램 풀을 재생할 때까지 계속 표시됩니다.

때로는 단 하나의 메뉴 (상단 표시 줄 또는 빠른 실행)가 사라지고 두 번째 메뉴가 정상적으로 보입니다. 또한 사이트를 정상적으로 사용하는 동안 사라졌을 때 상황이 발생했다고 생각합니다.

EventLog에는 아무 것도 없습니다. ULS 로그에 추적이 있습니다. 빠른 실행 또는 위쪽 표시 줄이 사라지면 한 개의 새 행만 추가됩니다 (예 :이 경우에만 스택 추적 또는 추가 정보 없음).

02/05/2010 10 : 24 : 19.18 w3wp.exe (0x171C) 0x17BC Windows SharePoint Services 일반 8kh7 높음이 작업을 완료 할 수 없습니다. 다시 시도하십시오.

글쎄, 실제로 메뉴가 사라지는 원인이 잘못되었다고 말합니다. 누구나이 진단 방법을 도울 수 있습니까? 아니면이 메뉴가 사라지는 이유를 아십니까?

+0

정확히 무엇이 원인인지 알아 냈습니까? 나는이 글을 읽었으나 우리에게 적용 할 때까지 아무 것도 쓰지 않는다. 두 탐색 영역 모두 브라우저에서 새로 고침을 누르면 무작위로 렌더링되거나 렌더링되지 않습니다. 10 분 후에 일부 하위 사이트에서는 괜찮 았지만 나머지 사이트에서는 그렇지 않았습니다. SP가 꽤 상상을 초월한 것처럼 보입니다! – Tor

답변

0

Gylo 게시 기능을 해당 사이트에서 사용할 수 있습니까? 이것은 톱 네비게이션이 처음으로 나타나지 않는 게시 (작은 해킹 사용)로 저장된 사이트 템플릿을 복원 할 때 알려진 상황입니다.

실행중인 버전은 무엇입니까? (사이트 작업 => 사이트 정의에 표시됨)

+0

아니요, 게시 기능이 비활성화되어 있습니다. MOSS 2007에 있습니다. 당신은 이것이 "알려진 상황"이라고 말했습니까? 링크 나 리소스가 있습니까? 어쩌면 비슷한 것일 수도 있습니다. – Gylo

+0

'알려진 상황'은 내가 말한 것을 수행 할 때 발생합니다 (허용되지 않는 템플릿으로 게시 사이트 저장 - 작은 트릭을 사용하고 사이트를 복원해야 함 - 메뉴가 손상되어 나타날 것임). –

+0

확인해 주셔서 감사합니다. 단, 게시자와 같은 추가 기능이없는 간단한 템플릿 인 일반 템플릿 (ONET.XML 파일)에서 해당 사이트와 그 하위 사이트를 만듭니다. – Gylo

0

사이트 정의에서 네비게이션을 망쳤고 1002의 ID로 탐색 노드를 제거했을 수 있습니다.이 노드는 웹 탑 탐색 저장에 대한 책임이 있으며 웹에서 네비게이션을 공유하면 상황에 따라 네비게이션이 사라질 수 있습니다. your-web.Navigation.TopNavigationBar가 null인지 확인하십시오. 그렇다면 노드 # 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

관련 문제