【问题标题】:uninstallation of windows service fails sometimes forcing restart of the machinewindows服务卸载有时会强制重启机器失败
【发布时间】:2010-11-19 18:32:58
【问题描述】:

我在卸载和重新安装 Windows 服务时遇到问题。有时当我使用服务的 MSI 包卸载时(即使在停止服务并关闭服务管理控制台之后),服务没有被卸载,然后如果我运行“installUtil”,那么服务被禁用,但没有被删除从控制台。然后如果我尝试“sc delete service.exe”,我会收到一个错误“服务被标记为删除”。一旦发生此错误,我唯一的选择是重新启动工作站或安装它的服务器。有时它工作正常,有时它不能正确卸载。如何确保卸载始终有效?为什么卸载这么痛苦?在开发过程中,我需要多次重新安装服务以安装新版本的服务,并且无需重新启动机器即可轻松重新安装服务将很有用。
提前致谢。

【问题讨论】:

  • 您是否尝试使用控制面板而不是 msi 或 installutil 进行卸载?我总是以这种方式删除我的服务,但还没有遇到过这个问题。
  • 我猜有一个线程,当你收到 OnStop() 请求时,你并不总是终止。

标签: c# windows-services packaging setup-deployment


【解决方案1】:

我在测试期间不断安装、重建和卸载我的服务时遇到了类似的问题。我认为这与在尝试卸载服务之前重建 MSI 有关。始终从“添加/删除程序”对话框卸载应该可以避免这种情况,但这有点麻烦。我最终修改了我的 Wix 设置项目来做三件事:

  1. MSI 设置为启动/停止服务。一个例子here
  2. 如果当前版本或新版本已安装,请使用自定义操作停止安装。基于this 代码。
  3. 在桌面上创建卸载快捷方式。一个例子here

【讨论】:

    【解决方案2】:

    也许您的服务在关闭时遇到了一些问题,因为它遇到了未处理的错误。如果有日志,请尝试查看那里是否没有抛出任何内容。否则,我会添加一个日志机制(例如 log4net)。如果添加日志机制不是一种选择,那么 chezy525 的解决方案似乎是可行的方法。

    【讨论】:

      猜你喜欢
      • 2010-09-18
      • 1970-01-01
      • 1970-01-01
      • 2011-07-25
      • 1970-01-01
      • 2017-08-08
      • 1970-01-01
      • 2011-05-24
      • 2018-02-01
      相关资源
      最近更新 更多