Служба WiX не запускается: службе не удалось запуститься, убедитесь, что у вас достаточно прав
У меня есть Java-приложение. Я сделал файл scansol-agent-app.exe, из которого мне нужно сделать установщик с WiX. Ниже приведен код файла scansol-agent.wxs. Мне нужно установить это приложение в качестве службы Windows. Служба хорошо устанавливается, но не запускается. Windows показывает мне ошибку: "Не удалось запустить службу - убедитесь, что у вас достаточно прав для запуска системных служб". Я перепробовал все варианты, которые мог найти, но безрезультатно. Как я могу запустить эту услугу?
<?xml version="1.0"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Product Id="*"
UpgradeCode="{EB6B8302-C06E-4bec-ADAC-932C68A3A98D}"
Name="Scansol Agent Application Service"
Version="0.0.1"
Manufacturer="ScienceSoft"
Language="1033">
<Package InstallerVersion="200" Compressed="yes" Comments="Windows Installer Package" Manufacturer="ScienceSoft"/>
<Media Id="1" Cabinet="product.cab" EmbedCab="yes"/>
<Property Id="WHSLogo">1</Property>
<WixVariable Id="WixUILicenseRtf" Value="license.rtf" />
<UI>
<Property Id="ApplicationFolderName" Value="WiX Demo" />
<Property Id="WixAppFolder" Value="WiXxperMachineFolder" />
<Property Id="WIXUI_INSTALLDIR" Value="INSTALLDIR" />
<UIRef Id="WixUI_InstallDir" />
<!-- Skip license dialog -->
<Publish Dialog="WelcomeDlg"
Control="Next"
Event="NewDialog"
Value="InstallDirDlg"
Order="2">1</Publish>
<Publish Dialog="InstallDirDlg"
Control="Back"
Event="NewDialog"
Value="WelcomeDlg"
Order="2">1</Publish>
<!--<Property Id="DefaultUIFont">DlgFont8</Property>-->
<TextStyle Id="DlgFont8" FaceName="Tahoma" Size="8" />
<TextStyle Id="DlgTitleFont" FaceName="Tahoma" Size="8" Bold="yes" />
<Dialog Id="InstallDlg" Width="370" Height="270" Title="[ProductName] Setup" NoMinimize="yes">
<Control Id="Title" Type="Text" X="15" Y="6" Width="200" Height="15" Transparent="yes" NoPrefix="yes">
<Text>{\DlgTitleFont}Ready to Install</Text>
</Control>
<Control Id="Install" Type="PushButton" X="304" Y="243" Width="56" Height="17"
Default="yes" Text="Install">
<Publish Event="EndDialog" Value="Return" />
</Control>
</Dialog>
</UI>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFilesFolder" Name="PFiles">
<Directory Id="INSTALLDIR" Name="ScansolAgent">
<Component Id="ApplicationServiceInstall" Guid="{908B7199-DE2A-4dc6-A8D0-27A5AE444FEA}">
<File Id='ApplicationFile1' Source="scansol-agent-app.exe" DiskId='1' KeyPath='yes' Vital='yes'/>
<File Id="ApplicationFile2" Source="config.cfg" DiskId='1' KeyPath='no' Vital='yes'/>
<ServiceInstall
Id="ServiceInstaller"
Type="ownProcess"
Vital="yes"
Name="ScansolAgentService"
DisplayName="Scansol Agent Application Service"
Description="File Monitoring and Loading to server"
Start="auto"
Account="LocalSystem"
ErrorControl="ignore"
Interactive="no"
>
</ServiceInstall>
<ServiceControl Id="StartService" Start="install" Stop="both" Remove="uninstall" Name="ScansolAgentService" Wait="yes" />
</Component>
</Directory>
</Directory>
</Directory>
<Feature Id="DefaultFeature" Level="1" Title="ScansolAgentAppService">
<ComponentRef Id="ApplicationServiceInstall" />
</Feature>
</Product>
</Wix>
2 ответа
Причин может быть много, и подавляющее большинство из них были устранены, однако у меня был случай, когда ни один из ответов или предложений не был применим к нему. В конце я нашел причину для моего случая: в теге ServiceInstall есть атрибут с именем Account, который в моем случае был LocalService, однако в моем проекте для службы Windows, в сгенерированном файле, который я назначил для моей службы учетной записи быть локальной системой. Таким образом, если учетная запись службы, заданная в проекте службы Windows, не совпадает с той, которую вы позже указали в исходном файле WiX в атрибуте учетной записи ServiceInstall, тогда установщик Windows успешно установит вашу службу, однако при запуске ее не удастся. В заключение, убедитесь, что учетные записи служб совпадают в обоих местах. И опять же, это может быть не ваш случай, но стоит перепроверить.
См. Этот ответ: https://stackoverflow.com/a/65342252/6657445 . В этом случае, поскольку это не учетная запись домена или локального пользователя, попробуйте переключить «Интерактивный» на «да». У меня без проблем установлены другие службы.