2010-03-08 8 views
0

MSBuild 및 CCNET을 사용하여 Windows 서비스를 설치하려고합니다. MSBuild Extension 팩 WindowsService 작업을 사용하여 자동 빌드의 일부로 Windows 서비스를 설치하고 시작합니다. \ 데이터 \ cc_temp 프로젝트 \ \ 차 \ 인트라넷 \ : 첫 번째 작업은 서비스를 설치하는 실행으로 스크립트 섹션이CC.NET 및 MSBUILD를 사용하여 Windows 서비스를 설치하는 중 문제가 발생했습니다.

<!--install service--> 
<MSBuild.ExtensionPack.Computer.WindowsService TaskAction="Install" ServiceName="$(PrServiceName)" ServicePath="$(PrServicePath)" User="$(User)" /> 

<!--set service to run automatically on restart--> 
<MSBuild.ExtensionPack.Computer.WindowsService TaskAction="SetAutomatic" ServiceName="$(PrServiceName)" /> 

<!--start service--> 
<MSBuild.ExtensionPack.Computer.WindowsService TaskAction="Start" ServiceName="$(PrServiceName)" ServicePath="$(PrServicePath)" User="$(User)" /> 

처럼 지금 즉시, 그것은 다음과 같은 오류

E 실패 pr \ pr.build (137,3) : 오류 : 서비스 설치에 실패했습니다 : 'AccessDenied'

스크립트가 설치를위한 적절한 권한이없는 크루즈 컨트롤 서비스 사용자 계정에서 실행되고 있기 때문입니다 Windows 서비스.

전체 관리 권한을 부여하는 대신 크루즈 컨트롤 사용자 계정에 최소한의 권한 만 부여하고 싶습니다.

아무도 내가 이것을 어떻게 얻을 수 있는지 알고 있습니까?

기다리는 나빌

답변

0

나빌 당신이 올바른 궤도에있다, 그것은 권한 문제이어야한다. 우리는 동일한 도구를 사용하여 빌드 할 때 항상이 작업을 수행하며 작동합니다. 서비스가 실행중인 계정을 확인 했습니까? 당신의 cruisecontrol을 실행하기 위해 동일한 사용자 계정을 사용합니까? 적어도 그러면 권한 문제를 증명하거나 반증 할 수 있습니다.

+0

안녕하세요, Alex는 작업에서 * ServicePath * 속성에 대해 unc 경로를 사용하고있었습니다. 절대 경로로 변경하면 모든 것이 정상적으로 작동하는 것 같습니다. – nabeelfarid

관련 문제