User Profile 관련해서 설정과 작동에 버그가 좀 있는 것 같았는데요.. 다행히 hotfix가 나왔네요.
http://support.microsoft.com/kb/983497/ ->기본적으로 한글로 번역기가 돌려 보여줍니다. 번역 품질이 쪼금 떨어지네요
User Profile 관련해서 설정과 작동에 버그가 좀 있는 것 같았는데요.. 다행히 hotfix가 나왔네요.
http://support.microsoft.com/kb/983497/ ->기본적으로 한글로 번역기가 돌려 보여줍니다. 번역 품질이 쪼금 떨어지네요
사이트 정의를 새로 만들면서 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레코드가 사라지는 경우가 있으니 아예 만들라고 이야기를 하더군요.
여기서는 navigaion node를 잘못 삭제하면 그런 증상이 발생한다고 하는데 제 경우에는 사이트 생성시 부터 TopNavigationBar가 보이지 않는 증상이었습니다.
SharePoint의 Navigation 개체는 기본적으로 root 아래에 3개의 Node가 제공 됩니다.
Home : 1000
Top Navigation Bar : 1002
Quick Lauch Bar : 1025
이상한 것은 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
SharePoint 기반 개발을 하다가 보면 Process를 attatch 해서 debugging을 해야 할 일이 자주 발생 합니다. 그런데 IIS에서 돌아가는 Application Pool이 많다 보면 어떤 worker process(w3p.exe)가 내 웹애플리케이션을 돌리고 있는지 알 수가 없습니다. 그럴 때는 iis의 appcmd를 사용해서 현재 작동중인 worker process정보를 알아 낼 수 있습니다.
C:\Windows\System32\inetsrv>appcmd list wp