2011-03-04 4 views
2

로깅 용으로 NLog를 사용하고 있으며 이제는 SharePoint 솔루션으로도 사용하려고합니다.
WSPBuilder에서 NLog.config을 WSP에 포함시키고 솔루션 dll과 같은 폴더에 배치하도록하려면 어떻게해야합니까?WSP에 구성 파일을 포함시키는 방법은 무엇입니까?

편집 :

좋아, 또 다른 옵션은 SharePoint의 80 디렉토리를 Web.nlog를 넣어하는 것입니다.
별도의 기능이 필요합니까? elements.xml에 무엇을 써야합니까?

답변

3

이렇게 할 수 없다고 생각합니다. 보안상의 이유로 가정합니다.

DLL은 GAC (서명 된 어셈블리 만) 또는 웹 응용 프로그램의 bin 디렉터리 (필요한 CAS 정책과 함께 솔루션 매니페스트를 통해 배포 됨)에만 배포 할 수 있습니다.

bin 디렉토리의 어셈블리와 함께 여분의 파일을 원하면 수동으로 복사해야합니다.

+0

감사합니다. 제발, 편집에 대한 의견을 들려 주시겠습니까? –

+0

기능의 elements.xml을 통해 프로비저닝 된 파일은 12 개의 하이브에만 배치 할 수 있습니다 ('프로그램 파일 \ 공통 파일 \ microsoft 공유 \ 웹 서버 확장 \ 12 \ 템플릿 \ 디렉토리). 레이아웃 디렉터리의 하위 폴더 (팜의 모든 사이트에서 사용 가능) 또는 기능이 활성화 된 사이트의 모든 문서 라이브러리에 배치 할 수 있습니다. –

+1

간단히 말해 솔루션에 수동 배포 단계를 추가하여이 파일을 사용할 수있는 곳으로 복사해야 할 수 있습니다.실망하지 마라. 나는 가끔 수작업으로해야만했고, 지옥처럼 더러워졌지만 때로는 유일한 길이다. –

3

NLog.config가 별도의 파일이어야하거나 설정을 web.config 파일에 통합 할 수 있습니까? 설정을 web.config 파일에 통합 할 수있는 경우 피처 수신자를 추가하고 FeatureActivated 또는 FeatureInstalling 이벤트 중 필요한 설정을 SPWebConfigModifications (단지 Google 용)를 사용하여 web.config에 쓸 수 있습니다. 또한 FeatureDeactivating 또는 FeatureUninstalled 이벤트에서 설정을 제거해야합니다.

+0

예, NLog 설정은'web.config'에도 위치 할 수 있습니다. 그러나 수동으로 수행하면 장기적으로 유지 관리가 쉬운 솔루션처럼 보이기 때문에 다른 답변을 올바르게 표시합니다. 노력해 주셔서 감사합니다! –

+0

둘 이상의 서버가있는 팜이없는 경우 모든 서버에서 web.config 파일을 수동으로 동기화해야합니다. 또한 팜에 새 서버를 추가 한 경우 web.config에 수동으로 설정을 추가해야한다는 것을 기억해야합니다. 반면 SPWebConfigModifications를 통해 설정 한 경우 자동으로 설정을 수행하게됩니다. 그래서 직접하는 것은 가능한 한 최악의 방법입니다. –

+0

'web.config's를 변경하는 대신 NLog와 잘 작동하는 config와 동일한 디렉토리에 특별한'web.nlog' 파일을 넣으려고했습니다. 'web.config' 파일을 수동으로 바꾸는 것은 나쁜 생각이지만, 파일을 추가하는 것은 간단합니다. –

0

또한 여기에서 살펴 보셔야합니다 : http://msdn.microsoft.com/en-us/library/ee413935.aspx

나는 이러한 질문을 물어 보곤 :

  • 구성은 모든 농장에 대해 동일을? 하나의 웹 응용 프로그램 만?
  • 프로그래밍 방식으로 NLog 구성을 지정할 수 있습니까?

답변에 따라 하나 이상의 해결 방법을 제안합니다. 의 Web.config와 단점은

  • 구성은 모든 SharePoint 서버에 배포가 (기능은 해당 알아서,하지만 당신은 일관성없는 행동의 경우 명심해야한다) 당신이 원하는 경우
  • 설정을 수정하는 데 쉬운 방법이 없습니다.
  • 설정을 수정할 때마다 응용 프로그램 풀이 재활용됩니다.
+0

문제가되는 웹 응용 프로그램이 하나 뿐이고 확장 계획이없는 서버가 하나뿐이므로 매우 간단합니다. 불행히도 XML을 동적으로로드하는 것은 NLog에서 다소 나쁘게 문서화됩니다. web.config/web.nlog에 설정을 저장하지 않겠습니다. SharePoint 구성 디렉토리에있는 하나의 파일에 대한 하드 코드 된 참조를 수정하고 런타임에 자동으로 다시로드 할 수 있습니다. 나는 NLog 초기 위치를 볼 필요가 있습니다. –

+0

나는 본다. 12 하이브에 구성 저장은 간단하지만 업데이트하기가 쉽지 않습니다 (WSP를 업데이트하거나 수동으로 업데이트하지 않음). 하지만 하나의 서버/응용 프로그램으로, 그것은 괜찮습니다 :) –

관련 문제