발췌문 : 서비스가 시작되지 않으면서비스 시작에 실패하면 WiX 설치 프로그램을 어떻게 실패합니까? 내 WXS 파일에서
<ServiceInstall Id="ServiceInstall" Type="ownProcess" Vital="yes"
Name="service name"
DisplayName="service display name"
Description="service description"
Start="auto" Account="[SERVICEUSERNAME]" Password="[SERVICEPASSWORD]"
ErrorControl="normal" Interactive="no" />
<ServiceControl Id="StartService"
Start="install" Stop="uninstall" Remove="uninstall"
Name="service name" Wait="yes">
<ServiceArgument>arguments for first run</ServiceArgument>
</ServiceControl>
, 설치는 그것이 정지 상태에 있음을 감지 할 수한다고 반면, 실패하기 전에 몇 분 동안 기다린 것과 포인트는 수동 개입없이 시작 상태에 도달 할 수 없습니다. 그러나 그것은 계속 기다리고 있습니다. 이 문제를 해결할 방법이 있습니까?
제가 알기에 서비스는 7 가지 상태 중 하나 일 수 있습니다 : https://msdn.microsoft.com/en-us/library/system.serviceprocess.servicecontrollerstatus(v=vs.110).aspx에서, ContinuePending, Paused, PausePending, Running, StartPending, Stopped, StopPending 중 하나입니다. 서비스가 StartPending에 도달 한 후 Stopped로 이동하면 서비스가 시작되지 못하고 기다리는 대신 설치가 실패 할 것으로 예상됩니다. 서비스가 실패한 후에 다시 시작하도록 구성되지 않았습니다. (아마도 그래야합니다 ...) –
- WiX에서 값 1을 허용하지 않으면 오류가 발생합니다. "오류 CNDL0015 : ServiceControl/@ Wait 속성의 값 , '1'은 합법적 인 예/아니오 값이 아니며 유효한 값은 '아니요'와 '예'뿐입니다. " ServiceControl 설치 관리자 테이블에서 '예'가 1로 변환되고 '아니오'가 0으로 변환된다고 가정합니다. –
내가 말했듯이 MSDN 문서의 원본을 언급하고 대기 값을 지정하는 WiX 구문을 언급하지는 않습니다. 설명하는 서비스 상태는 자동으로 감지되지 않고 QueryServiceStatus와 같은 API에 의해보고되므로 서비스는 해당 값을 반환하도록 코딩되어야하며 분명히 반환해야합니다. 그렇지 않으면 제한 시간 규칙이 적용됩니다. – PhilDW