【问题标题】:Wix: The service cannot be started during installationWix:安装期间无法启动服务
【发布时间】:2011-09-16 10:54:05
【问题描述】:

我遇到了 Wix 服务问题,因为在安装过程中无法启动该服务。它抛出错误:

Error 1053: The service did not respond to the start or control request in a timely fashion

[WIX_ACCOUNT_LOCALSYSTEM][WIX_ACCOUNT_LOCALSERVICE] 我都试过了,但没有一个可以工作。

但这里有点奇怪,因为我有一个使用 ClickOne 的安装程序,它包含与我在 Wix 中使用的相同的服务组件。 ClickOne安装服务很好(使用InstallUtil.exe),证明账号有权限启动服务。

然后,我卸载软件(由 ClickOne 安装),再次运行 Wix 安装程序,服务现在可以正常启动。不知道是什么原因?

我想更清楚地说明一些流程:

1- 在新机器上

2- 运行 Wix 软件安装程序 --> 服务无法启动并抛出错误消息 --> 取消安装

3- 运行 ClickOne 软件安装程序 --> 服务启动良好 --> 卸载软件

4- 运行 Wix 软件安装程序 --> 服务启动良好

另外请注意,我在 2 台新机器上尝试了 2 次,但结果相同。任何人都可以对这种奇怪的行为有所了解吗?或者我应该验证什么?

提前致谢,

【问题讨论】:

  • 您是否也尝试在 WiX 中使用 installutil.exe?
  • 当服务启动失败时,您是否检查过可执行文件的依赖关系。您是否使用 Windows 安装程序表将文件安装到 GAC。在这种情况下,当安装程序运行 StartServices 操作时,您的依赖项将不可用。 ClickOnce 没有这个限制,但如果 ClickOnce 安装到 GAC,那么它将解释为什么该服务随后可以工作。 CheckAsm.exe 非常适合评估依赖关系。
  • @jcha 检查 Windows 日志是否有错误,您可以找到您的服务无法启动的原因。最可能的原因是缺少依赖项(ClickOnce 偶然安装)。
  • @Cosmin Pirvu:我一直在尝试使用 Wix 中的 InstallUtil.exe(自定义操作)和 Wix 扩展实用程序,但它们都无法启动服务。
  • @Stephen Connolly:通过 CheckAsm.exe 检查,服务不依赖于任何自定义 GAC 程序集。假设服务依赖于某些东西,为什么安装完成后我仍然无法手动启动它?

标签: service installation wix clickonce


【解决方案1】:

感谢@Stephen Connolly、@Alexey Ivanov、@Cosmin Pirvu 的 cmets。

我想在上面添加您的 cmets 作为答案。

  1. 使用CheckAsm,这是一个验证程序集依赖关系的好工具
  2. 在事件查看器中查看日志信息可能会停止服务启动(即超时、服务依赖...)
  3. 服务操作需要验证所有内容。安装完成后它们应该可用(即配置、注册表、工作文件夹...)
  4. 如果安装程序使用 Windows Installer 表将文件安装到 GAC,则在安装程序运行 StartServices 操作时依赖项将不可用

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-23
    • 2016-03-06
    • 1970-01-01
    • 1970-01-01
    • 2018-10-25
    • 2010-12-28
    相关资源
    最近更新 更多