2

我正在使用 WiX 3.6 为 Windows 服务创建安装程序。我已经构建了解决方案,并且能够在我的开发机器上安装该服务,并且该服务就像我想要的那样启动。

当我将 msi(构建或发布)复制到服务将在其上运行的 Windows Server 2003 R2 机器上时,就会出现问题。
我可以安装该服务,但是当我尝试启动该服务时出现错误

“服务启动失败。请确认您有足够的权限启动系统服务。”

现在我可以安装和启动我创建的其他服务,所以我现在确实拥有服务器的权限。下面是我的服务安装元素。

我的问题是,我错过了服务在开发机器而不是服务器上启动的内容?

   <File Id="CopyService.exe" Name="CopyService.exe" Source="..\CopyService\bin\$(var.CopyService.Configuration)\CopyService.exe" Vital="yes" KeyPath="yes" DiskId="1"/>
    <File Id="App.config" Name="CopyService.exe.config" Source="..\CopyService\bin\$(var.CopyService.Configuration)\CopyService.exe.config" Vital="yes" KeyPath="no" DiskId="1"/>
      <ServiceInstall
               Id="ServiceInstaller"
                Type="ownProcess"
                Vital="yes"
                Name="ACSIAccountingReports"
                DisplayName="ACSI Accounting Reports"
                Description="Service copies accounting reports from NetForum into an ACSI network folder."
                Start="auto" 
                Account="LocalSystem"
                ErrorControl="ignore"          
                Interactive="no">
    </ServiceInstall>
    <ServiceControl Id="StartService" Name="ACSIAccountingReports" Start="install" Wait="yes" />
    <ServiceControl Id="StopService" Name="ACSIAccountingReports" Stop="both" Wait="yes" Remove="uninstall" />
4

1 回答 1

1

您看到的错误消息是来自 Windows Installer 的所有服务安装失败的默认错误消息。这不是很有帮助。要调试真正的问题,请尝试在错误对话框启动时再次启动您的服务。您可能会收到更详细的错误消息,说明您的服务未启动的原因。如果您仍然一无所获,请尝试使用像 depends.exe 或 fuslogvw(打开 NETFX 程序集加载失败)之类的工具来查看您的服务可执行文件是否缺少一些依赖项。

请记住,GAC 的文件直到安装结束时才完成。因此,您的服务不能依赖 GAC 的文件并在安装期间启动服务。

于 2013-03-15T06:59:12.077 回答