我有一个简单的msi编写的WiX安装本机NT服务。在我对msi进行了一些更改后,它在StartServices标准操作中失败,出现错误“服务无法启动,请确认您有足够的权限”。如果我按下忽略并手动启动该服务,则它会成功启动。问题绝对不是没有足够的权限。我如何诊断/调试这些问题? Windows安装程序的详细日志似乎不包含任何有用的信息。调试“服务无法启动”Windows安装程序错误
1
A
回答
5
安装程序将没有任何有用的信息,因为错误仅由安装程序提供。以下是我如何解决这个问题。
注释掉的ServiceControl元素,以便安装程序不会尝试启动该服务。 运行安装程序并完成它。 手动启动服务。
如果服务启动,则表示某种竞争条件。一种常见的情况是该服务依赖于正在安装到GAC或WinSXS的文件。安装程序使用PublishAssemblies标准操作将这些文件放在那里。但是,由于GAC和WinSXS API不支持跨安装,PublishAssemblies会一直等到执行阶段才能执行工作。这是在安装程序尝试启动服务之后。另一种常见情况是,如果您有一些自定义操作正在安装或配置该服务所需的某些内容,并且您在安装过程中所做的操作较晚。
如果服务仍然无法启动,这通常会排除竞争条件。你必须分析服务本身。使用诸如依赖,ildasm(如.net)和processexplorer(filemon/regmon)等工具尝试发现缺失的依赖关系。更新安装程序,然后冲洗并重复。
1
正如您发现的那样,Windows Installer在无法启动服务时不提供有用的信息。但是,当显示对话框时,机器处于完美状态以确定发生了什么问题。所以,而不是取消安装,开始调试。试着开始服务,看看是否给你更多的信息。如果没有,请打开调试器并去镇上。
我基本上遵循本FireGiant KB Article描述的过程。这是找出服务无法启动的最直接方法。 Windows Installer本身不能提供更好的消息太糟糕了。
相关问题
- 1. 安装Windows服务将无法启动
- 2. GitHub for Windows安装错误“应用程序无法启动”
- 3. 无法在WiX安装程序中安装并启动Windows服务
- 4. 作为Windows服务安装时启动远程调试Tomcat(jdwp)
- 5. 无法启动作为Windows服务安装的WCF服务
- 6. 无法安装Windows Web服务API与VS2012远程调试
- 7. 调试Windows服务 - 防止无法启动服务
- 8. 无法安装Windows服务
- 9. 安装Windows服务无法
- 10. 无法安装/启动mysql服务器
- 11. 安装程序无法启动用户下的服务
- 12. 无法使用WiX安装程序启动服务
- 13. Windows服务安装程序
- 14. msi安装程序 - 服务未启动
- 15. Windows安装程序错误。 “这个安装包无法打开......”
- 16. 安装时自动启动Windows服务
- 17. 安装时自动启动Windows服务
- 18. 错误:“无法在Web服务器上启动调试...”ASP.NET 4.0
- 19. WiX安装程序无法启动 - 错误0x80070005
- 20. 无法启动Windows服务
- 21. 无法启动Windows服务
- 22. Windows无法启动服务
- 23. 无法在调试模式下启动程序。调试Dll安装问题?
- 24. 无法调试Windows服务
- 25. Windows安装程序错误卸载服务(无法打开键未知)
- 26. 如何使用inno安装程序运行windows启动服务?
- 27. 安装Windows服务启动参数
- 28. 错误1053尝试重新启动/停止Tomcat 5.0.30(作为Windows服务安装)
- 29. Inno安装程序无法启动exe
- 30. Visual Studio安装程序无法启动
这是开发人员进行调试的最佳时机,但通常有几十个其他人只是不高兴安装“破碎”。我通常会禁用该服务,并教导开发人员如何启用自己,以便让整个组织承受最少的痛苦,直到开发人员全力以赴。 –