停止windows服务时出错
本文关键字:出错 服务 windows 停止 | 更新日期: 2023-09-27 17:54:36
我在Windows Service上工作。它工作得很好。当我试图从services.msc
停止服务时,它抛出以下错误:
Windows无法停止本地计算机上的xxx服务。服务没有返回错误。这可能是Windows内部错误或内部服务错误。如果问题仍然存在,请联系系统管理员。
如果我尝试再次停止它,它会花费很多时间,然后抛出如下错误:
Windows无法停止本地计算机上的xxx服务。错误1061:服务此时不能接受控制消息。
此时,服务已经停止。但是如果我尝试重新安装服务,它会抛出另一个错误:
Windows无法停止本地计算机上的xxx服务。
错误1001:指定的服务被标记为删除。
关闭services.msc
后,它让我重新安装服务并再次开始正常工作。
在OnStop()
中,我做了一些冗长的操作,需要时间来完成。
——编辑——
这是我的OnStop
方法看起来像:
protected override void OnStop()
{
base.OnStop();
//Some lengthy operation
}
windows服务在onstart和onstop事件中有默认超时。通常,如果在这些事件中执行耗时的操作, 启动一个新线程,并让操作在后台执行。
通常windows服务中的OnStart和OnStop事件用于启动进程,耗时的进程将在子线程中执行。
希望这能解决你的问题。
有一个注册表项控制窗口在放弃之前给服务关闭多少时间:http://support.microsoft.com/kb/146092
简单地说,增加这个时间可以解决这个问题,假设您的服务在长时间运行后实际上是关闭的。