windows服务程序运行时错误显示“错误1053服务没有及时响应启动或控制请求。”怎么办?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了windows服务程序运行时错误显示“错误1053服务没有及时响应启动或控制请求。”怎么办?相关的知识,希望对你有一定的参考价值。
参考技术A 你可能需要在onStart()方法里另起一个线程,在这个线程里可以while(true).\\x0d\\x0a protected override void OnStart(string[] args)\\x0d\\x0a \\x0d\\x0a // TODO: Add code here to start your service.\\x0d\\x0a if (threadforwork == null)\\x0d\\x0a \\x0d\\x0a threadforwork = new Thread(workFunction);\\x0d\\x0a \\x0d\\x0a threadforwork.IsBackground = true;\\x0d\\x0a threadforwork.Start();\\x0d\\x0a \\x0d\\x0a在onStop()里面将线程杀掉\\x0d\\x0a protected override void OnStop()\\x0d\\x0a \\x0d\\x0a // TODO: Add code here to perform any tear-down necessary to stop yourservice. \\x0d\\x0a if (threadforwork != null)\\x0d\\x0a \\x0d\\x0a if (threadforwork.ThreadState == System.Threading.ThreadState.Running)\\x0d\\x0a \\x0d\\x0a threadforwork.Abort();\\x0d\\x0a \\x0d\\x0a \\x0d\\x0a \\x0d\\x0aWindows 2008 服务器任务调度程序不运行 .bat 批处理作业 [关闭]
【中文标题】Windows 2008 服务器任务调度程序不运行 .bat 批处理作业 [关闭]【英文标题】:Windows 2008 server task scheduler does not run .bat batch job [closed] 【发布时间】:2011-07-02 09:21:39 【问题描述】:我在 Windows 2008 服务器上有一个批处理文件,当从命令行调用它时工作正常。但是,当我设置一个计划任务来运行这个作业时,它不能正常工作。
任务调度程序确实显示任务正在定期运行,它没有显示任何错误。但是,批处理文件不处理它应该处理的内容。
欢迎任何有关如何解决此问题的想法
【问题讨论】:
bat 文件设置在哪个用户下运行?它可能没有所需的权限。它不会显示任何错误但不会运行。 【参考方案1】:Windows Server 2008 不会运行批处理文件中带有引号 " 的任何批处理文件。 见http://technet.microsoft.com/en-us/library/dd851678.aspx
【讨论】:
这家伙应该拿奖牌!!!多亏了这个答案,我才能使一切正常。我发现一个简单的解决方法是:您创建另一个批处理文件,您应该将其命名为“DummyCaller.bat”,只有一行:调用您的另一个批处理文件(例如:调用 mybatch.bat)。 MyBatch.bat 是您的原始 bat 文件,其中包含引号并且不起作用。但是,如果你这样称呼它,它就完美了。 或者你可以在这里下载修复程序support.microsoft.com/kb/951246【参考方案2】:我遇到了类似的问题,当我在“程序/脚本”字段中有完整的文件路径时,我的 .bat 文件无法正确执行。
"D:\path\to\file\somebat.bat" 没有执行。 (带引号)
当我将 D:\path\to\file\(不带引号)放在 Start in (optional): 字段和 somebat.bat 中的 Program/script: 字段 somebat.bat 正确执行。
想一想...不完全确定为什么在 Program/script: 中包含 "D:\path\to\file\somebat.bat" 不起作用。
也许有人可以对此有所了解?
【讨论】:
非常感谢!我一直在上下调整我的 .bat 文件及其所在文件夹的所有权限设置,但在尝试此技巧之前没有任何效果。 这是对我有用的答案。谢谢! 就是这样,尽管从另一个工作正常的任务中复制。真是浪费时间。感谢您的回答。【参考方案3】:就我而言,我有“无论用户是否登录都运行”。当我更改为“仅在用户登录时运行”时,它工作正常。
【讨论】:
【参考方案4】:确保任务在具有必要权限的帐户下运行。当您直接从命令行运行批处理脚本时,它会在您的用户帐户下运行,该用户帐户的权限可能与用于计划任务的默认帐户不同。
【讨论】:
任务以管理员身份运行。我看到一篇文章说如果组有权访问目录是不够的,用户应该可以直接访问目录。所以,我也这样做了。行为没有变化 如何更改批处理脚本以在操作完成时写入日志文件。这样您就可以缩小到导致错误的步骤。以上是关于windows服务程序运行时错误显示“错误1053服务没有及时响应启动或控制请求。”怎么办?的主要内容,如果未能解决你的问题,请参考以下文章
启动“Distributed Transaction Coordinator”服务 错误1053