문제

내가 작성한 .NET 서비스를 설치하려고합니다.MSDN에서 권장하는대로 InstallUtil을 사용하고 있습니다.그러나 명령 줄 또는 서비스 자체에서 기본 서비스 사용자를 설정하는 방법을 놓쳤습니다.이제 InstallUtil이 실행되면 사용자의 자격 증명을 묻는 대화 상자가 표시됩니다.서비스 설치를 더 큰 설치에 통합하려고하는데 서비스 설치를 조용히해야합니다.

도움이 되었습니까?

해결책

찾은 것 같습니다.서비스 자체에서 자동으로 생성 된 ServiceProcessInstaller 구성 요소에는 "LocalService", "LocalSystem", "NetworkService"또는 "User"로 설정할 수있는 "Account"속성이 있습니다.프롬프트를 표시해야하는 "사용자"로 기본 설정되었습니다.

다른 팁

알다시피 Karim, "Account"속성이 해결책입니다.이 속성에서 설정 한 보안 컨텍스트의 차이점에 관심이있는 경우 :

http://msdn.microsoft.com/en-us / library / system.serviceprocess.serviceaccount.aspx

InstallUtil 또는 SC를 사용하는 것보다 SELF INSTALLER 를 만드는 아이디어가 마음에 듭니다.

http://www.codeproject.com/KB/dotnet/WinSvcSelfInstaller.aspx

.Net 1.1 문서에서 이것을 찾았지만 : <인용구>

ManagedInstallerClass 유형 .NET Framework 지원 인프라이며 코드에서 직접 사용할 수 있습니다.

또한 SC.exe 유틸리티 에 유의하세요.Visual Studio를 설치할 필요가 없습니다.이 exe를 서비스를 만들려는 서버에 복사하거나 원격으로 실행 할 수도 있습니다.사용자를 지정하려면 obj 매개 변수를 사용하세요.

분명히이 도구에 대한 GUI가 있지만 사용하지 않았습니다.

서비스를 실행할 계정이나 서비스를 설치할 권한을 요청합니까?두 번째로 관리자로 설치하면 이러한 일이 발생하지 않습니다.먼저 설치 프로그램에 ServiceProcessInstaller를 추가해야합니다.

서비스의 디자인 화면에 프로젝트 설치 프로그램을 만드는 링크가 있다고 생각합니다.해당 디자이너에서 System.ServiceProcess.ServiceProcessInstaller 유형의 프로세스 설치 관리자를 추가 할 수 있습니다.이 개체의 속성을 통해 서비스에 사용할 계정을 설정할 수 있습니다.

InstallUtil에는 계정 유형으로 "사용자"를 사용할 때 프롬프트를 피할 수있는 명령 줄 스위치가 있습니다./username/password는 설치시 계정을 구성하는 데 사용됩니다.

사용법 : 라코 디스

원하는 것은 설치 프로그램이 서비스를 읽고 설치할 수있는 구성 파일을 갖는 것입니다.

이렇게하려면 프로젝트에 서비스 설치 프로그램을 추가하고 설치 방법을 오버로드하세요.이 방법에서 사용자 이름과 비밀번호를 설정합니다. 라코 디스

생성자에서 사용자 이름과 비밀번호를 설정하려고하면 해당 값을 덮어 쓰게되므로 "설치"를 재정의해야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top