2016-12-15 3 views
0

Wix를 사용하여 Windows 서비스 설치 프로그램을 개발했습니다. 서비스는 설치 후 자동 시작되도록 설정됩니다. 설치 프로그램에는 사용자 입력 및 업데이트 .config 파일을 가져올 사용자 지정 대화 상자가 있습니다. 입력은 선택 사항입니다.오류 1079 : Windows 서비스를 다시 시작하는 중 오류가 발생했습니다.

입력이 제공되지 않으면 구성 파일이 업데이트되지 않습니다. services.msc에서 Windows 서비스를 다시 시작할 수 있습니다. 사용자가 입력을 제공하면 사용자 지정 작업 (지연됨)이 구성 파일을 업데이트합니다. 이 사용자 지정 작업은 Impersonate = "no"모드로 실행됩니다.

이 경우 설치 후 Windows 서비스가 자동으로 시작되며 모든 것이 정상적으로 작동합니다. 하지만 서비스를 다시 시작하면 오류가 발생합니다. 다음은

<Component Id="CMPFa85281c3_a329_4a93_a1d7_203fbccec31f" Guid="*" Directory="INSTALLLOCATION"> 
    <Condition> 
    <![CDATA[Installed OR (SVCINSTALL <> 0)]]> 
    </Condition> 
    <RemoveFile Id="RmFa85281c3_a329_4a93_a1d7_203fbccec31f" Name="MyService.exe" On="both" /> 
    <File Id="Fa85281c3_a329_4a93_a1d7_203fbccec31f" Source="$(var.BaseDir)\MyService.exe" KeyPath="yes" /> 

    <ServiceInstall Id="InstallWindowsService" Name="MyService" 
        DisplayName="MyService" 
        Start="auto" 
        ErrorControl="normal" 
        Type="ownProcess" 
        Account="[USER_DOMAIN]\[SERVICEUSER]" 
        Password="[PASSWORD]" 
        Description="MyService"/> 

    <ServiceControl Id="sc_InstallWindowsService" Name="MyService" 
        Start="install" Remove="uninstall" Stop="both" Wait="no"/> 
</Component> 

사용자 지정 작업에 대한 코드입니다 : 아래

enter image description here

는 서비스를 설치하는 코드입니다.

<CustomAction Id="UpdateConfigFiles" 
       Return="check" 
       Execute="deferred" 
       Impersonate="no" 
       BinaryKey="MyCustomAction.dll" 
       DllEntry="UpdateFilePath" 
       HideTarget="yes"> 
</CustomAction> 

<InstallExecuteSequence> 
    <Custom Action="PassData" Before="UpdateConfigFiles">NOT Installed AND NOT PATCH AND NOT REMOVE</Custom> 
    <Custom Action="UpdateConfigFiles" Before="InstallFinalize">NOT Installed AND NOT PATCH AND NOT REMOVE</Custom> 
</InstallExecuteSequence> 
+0

하시기 바랍니다. 제목 줄에 "Windows 서비스 시작"이 표시되지만 텍스트에 "서비스를 중지하면"라고 표시됩니다. 둘 다 아니면 하나입니까? – PhilDW

+0

설치 후 서비스가 자동으로 시작됩니다. 이것은 잘 작동합니다. 하지만 services.msc에서 다시 시작하면 시작할 수 없습니다. –

답변

0

이런 종류의에서 판단 :

https://support.microsoft.com/en-us/kb/2478117

오류하는 서비스를 시작 불충분 한 권한으로 연관 될 수 있습니다. 물론 사용자 지정 작업이나 구성 단계가 영향을 미칠 이유는 없습니다. 물론 서비스가 새 계정으로 시작되거나 같은 프로세스에서 두 개의 서비스를 공유하도록해야합니다. 이 효과를 유발할 메커니즘이 없으므로 설치와 관련이없는 것 같습니다.

재현 할 시나리오는 아직 명확하지 않지만 설치가 서비스를 시작하고 설치가 로컬 시스템 계정으로 실행되므로 성공할 수 있지만 KB 문서에 따른 오류 메시지는 시작하려고하는 사용자에게 충분한 권한이 없으며 그렇지 않으면 프로세스가 구성 파일에 하나와 설치 구성으로 두 개의 계정을 사용하려고합니다.