Windows 10 - 错误1053:服务未及时响应启动或控制请求

时间:2018-04-23 00:44:26

标签: windows-services

创建运行任何cmd文件的Windows服务然后尝试启动该服务时,会出现以下错误。 “错误1053:服务没有及时响应启动或控制请求”

重新生成问题的步骤:

  1. 以管理员身份运行cmd

  2. sc create test01 binPath =“C:\ test.cmd”

  3. 创建一个test.cmd文件并在其中加入“echo test”

  4. 在Windows服务列表中启动test01服务

  5. 谷歌搜索问题我得到了以下修复:

    https://support.microsoft.com/en-au/help/886695/you-receive-an-error-1053-the-service-did-not-respond-to-the-start-or 这个链接建议安装一个修补程序,但它是2003年,所以它不能在Windows 10上工作(我找不到一个用于Windows 10)

    https://support.threattracksecurity.com/support/solutions/articles/1000071019-error-1053-the-service-did-not-respond-in-a-timely-fashion-when-attempting-to-start-stop-or-pause 此链接建议更改系统注册表以更改服务启动的等待时间,但是当我应用它时没有生效。

2 个答案:

答案 0 :(得分:0)

如果未授予显式GUI权限,则Win10服务无法直接运行CMD文件。您可以尝试在安静模式下运行cmd.exe,然后通过将其路径作为参数传递来运行“cmd文件”。

您可以阅读 more about running services that may run GUI on MSDN

答案 1 :(得分:0)

我知道这是一个古老的问题,但我认为其他人可能会找到有用的答案。

Windows服务运行时需要一个可执行文件,该可执行文件调用一些Windows API方法来通知服务启动进度,并注册一些由服务管理单元启动或停止该服务时调用的回调方法。

由于批处理文件未调用Windows API方法来通知启动进度,因此服务运行时认为它已挂起,并显示“错误1053:服务未及时响应启动或控制请求”。如果服务在启动时引发未处理的异常(例如,由于缺少程序集或配置文件格式不正确),也会发生此错误。

您不能将批处理文件作为Windows服务运行。您可以在.NET Core中用扩展ServiceBase并实现OnStart,OnStop和OnShutdown虚拟方法的类创建程序。此类对Windows API进行了所有必要的调用,以允许程序作为服务运行。