2010년 8월 19일 목요일

User Profile 관련 Hotfix가 나왔습니다.

User Profile 관련해서 설정과 작동에 버그가 좀 있는 것 같았는데요.. 다행히 hotfix가 나왔네요.

http://support.microsoft.com/kb/983497/  ->기본적으로 한글로 번역기가 돌려 보여줍니다. 번역 품질이 쪼금 떨어지네요

http://support.microsoft.com/kb/983497/en-us  –> 영문

2010년 8월 2일 월요일

web.Navigation.TopNavigationBar is null

사이트 정의를 새로 만들면서 navigation을 새로 만들어야 하는 상황이었습니다.

Feature를 하나 생성 한 다음 TopNavigationBar에 접근해서 기존 메뉴 노드를 삭제하고 제가 필요한 링크를 다는 작업을 하는데 문제가 시작 되었습니다.

   1:  
   2: public override void FeatureActivated(SPFeatureReceiverProperties properties)
   3: {
   4:     SPNavigationNode nodeToAdd = new SPNavigationNode("Test1", web.Url + 
   5:     "/Pages/PageView.aspx");
   6:     web.Navigation.TopNavigationBar.AddAsLast(nodeToAdd);
   7: ...
   8: }


위 코드에서 web.Navigation.TopNavigationBar 개체가 자꾸 null이 들어 오는 것입니다.

조금 research를 해 봤습니다.

의외로 TopNavigationBar가 null인 상황이 자주 발생 하는 것 같았습니다.

http://stackoverflow.com/questions/2206240/sharepoint-quicklaunch-and-topnavigationbar-dissapearing

위 url에서는 아예 TopNavigationBar레코드가 사라지는 경우가 있으니 아예 만들라고 이야기를 하더군요.

http://statto1974.wordpress.com/2008/04/09/beware-of-deleting-global-navigation-nodes-in-spwebnavigationglobalnodes/

여기서는 navigaion node를 잘못 삭제하면 그런 증상이 발생한다고 하는데 제 경우에는 사이트 생성시 부터 TopNavigationBar가 보이지 않는 증상이었습니다.

SharePoint의 Navigation 개체는 기본적으로 root 아래에 3개의 Node가 제공 됩니다.

Home : 1000

Top Navigation Bar : 1002

Quick Lauch Bar : 1025

clip_image001

이상한 것은 Quick Lauch Bar 개체는 접근에 문제가 없다는 것이었습니다.

한참동안의 고민끝에 원인을 알아 냈는데요 이유는 onet.xml 에 NavBar 가 없어서 였습니다. 제 딴에는 Navigation을 새로 만든다고 onet.xml에 NavBars 를 몽땅 들어냈는데 TopNavigationBar의 경우에는 여기에 꼭 있어야 (ID=1000) web.Navigation.TopNavigationBar property로 노출이 됩니다.



   1:  
   2: <Project Title="DocExport" Revision="2" ListDir="" xmlns:ows="Microsoft 
   3: SharePoint" xmlns="http://schemas.microsoft.com/sharepoint/">
   4:     <NavBars>
   5:     <NavBar Name="SharePoint Top Navbar" ID="1002">
   6:     </NavBar>
   7:     </NavBars>


SharePoint의 길은 멀고도 험하다는 걸 느끼는 하루였네요 T.T

2010년 8월 1일 일요일

SharePoint가 작동중인 Application Pool Worker Process ID 찾기

SharePoint 기반 개발을 하다가 보면 Process를 attatch 해서 debugging을 해야 할 일이 자주 발생 합니다. 그런데 IIS에서 돌아가는 Application Pool이 많다 보면 어떤 worker process(w3p.exe)가 내 웹애플리케이션을 돌리고 있는지 알 수가 없습니다. 그럴 때는 iis의 appcmd를 사용해서 현재 작동중인 worker process정보를 알아 낼 수 있습니다.

C:\Windows\System32\inetsrv>appcmd list wp

image