停止Windows服务时出错

时间:2011-05-04 18:07:14

标签: c# windows-services

我正在开发Windows服务。它工作正常。当我试图从services.msc停止服务时,它会抛出以下错误:

  

Windows无法在本地计算机上停止xxx服务。   该服务未返回错误。这可能是内部Windows错误或内部服务错误。   如果问题仍然存在,请与系统管理员联系。

如果我再次尝试停止它,则会花费大量时间然后抛出错误,如下所示:

  

Windows无法在本地计算机上停止xxx服务。   错误1061:此时服务无法接受控制消息。

此时,服务已停止。但是,如果我尝试重新安装该服务,则会引发另一个错误:

  

Windows无法在本地计算机上停止xxx服务   错误1001:指定的服务被标记为删除。

关闭services.msc后,它让我重新安装服务,然后事情开始正常工作。

OnStop()中,我正在做一些冗长的操作,需要时间才能完成。

知道如何让整个过程顺利进行吗?

- 编辑 -

这就是我的OnStop方法:

protected override void OnStop()
{
    base.OnStop();
    //Some lengthy operation      
}

2 个答案:

答案 0 :(得分:14)

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

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

希望这能解决你的问题..

答案 1 :(得分:2)

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

平凡地说,增加这段时间可以解决问题,假设您的服务在长时间操作后实际上正在关闭。

相关问题