WiX服务无法启动:服务无法启动验证您是否拥有足够的权限

时间:2016-05-25 07:42:55

标签: wix windows-services installer wix3.10 service-installer

我有一个java应用程序。我已经制作了一个 scansol-agent-app.exe 文件,我需要使用WiX制作安装程序。下面是 scansol-agent.wxs 文件的代码。我需要安装此应用程序作为Windows服务。 Servise安装得很好,但是没有启动。 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 个答案:

答案 0 :(得分:0)

理由可能很多,其中绝大多数都得到了解决,但是,我有一个案例,没有一个答案或建议适用于它。最后我找到了我的理由:在ServiceInstall标签中有一个名为Account的属性,在我的例子中是LocalService,但是,在我的Windows服务项目中,我为我的服务分配的生成文件中的帐户是LocalSystem。因此,如果Windows服务项目中设置的服务帐户与您稍后在ServiceInstall的帐户属性下的WiX源文件中指定的服务帐户不匹配,则Windows Installer将成功安装您的服务,但启动它时将失败。结论,确保两个地方的服务帐户都匹配。而且,这可能不是你的情况,但值得仔细检查。

答案 1 :(得分:0)

请参阅此答案:https://stackoverflow.com/a/65342252/6657445。对于这种情况,因为这不是域或本地用户帐户,请尝试将“交互式”翻转为“是”。我以这种方式安装了其他服务,没有问题。