停止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服务时出错

windows服务在onstart和onstop事件中有默认超时。通常,如果在这些事件中执行耗时的操作启动一个新线程,并让操作在后台执行。

通常windows服务中的OnStart和OnStop事件用于启动进程,耗时的进程将在子线程中执行。

希望这能解决你的问题。

有一个注册表项控制窗口在放弃之前给服务关闭多少时间:http://support.microsoft.com/kb/146092

简单地说,增加这个时间可以解决这个问题,假设您的服务在长时间运行后实际上是关闭的。