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>
사용자 지정 작업에 대한 코드입니다 : 아래
는 서비스를 설치하는 코드입니다.<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>
하시기 바랍니다. 제목 줄에 "Windows 서비스 시작"이 표시되지만 텍스트에 "서비스를 중지하면"라고 표시됩니다. 둘 다 아니면 하나입니까? – PhilDW
설치 후 서비스가 자동으로 시작됩니다. 이것은 잘 작동합니다. 하지만 services.msc에서 다시 시작하면 시작할 수 없습니다. –