创建运行任何cmd文件的Windows服务然后尝试启动该服务时,会出现以下错误。 “错误1053:服务没有及时响应启动或控制请求”
重新生成问题的步骤:
以管理员身份运行cmd
sc create test01 binPath =“C:\ test.cmd”
创建一个test.cmd文件并在其中加入“echo test”
在Windows服务列表中启动test01服务
谷歌搜索问题我得到了以下修复:
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 此链接建议更改系统注册表以更改服务启动的等待时间,但是当我应用它时没有生效。
答案 0 :(得分:0)
答案 1 :(得分:0)
我知道这是一个古老的问题,但我认为其他人可能会找到有用的答案。
Windows服务运行时需要一个可执行文件,该可执行文件调用一些Windows API方法来通知服务启动进度,并注册一些由服务管理单元启动或停止该服务时调用的回调方法。
由于批处理文件未调用Windows API方法来通知启动进度,因此服务运行时认为它已挂起,并显示“错误1053:服务未及时响应启动或控制请求”。如果服务在启动时引发未处理的异常(例如,由于缺少程序集或配置文件格式不正确),也会发生此错误。
您不能将批处理文件作为Windows服务运行。您可以在.NET Core中用扩展ServiceBase并实现OnStart,OnStop和OnShutdown虚拟方法的类创建程序。此类对Windows API进行了所有必要的调用,以允许程序作为服务运行。