我有一個簡單的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安裝程序無法啓動
這是開發人員進行調試的最佳時機,但通常有幾十個其他人只是不高興安裝「破碎」。我通常會禁用該服務,並教導開發人員如何啓用自己,以便讓整個組織承受最少的痛苦,直到開發人員全力以赴。 –