[英]How to troubleshoot Windows Scheduled Task not running?
在部署我们的.net应用程序的过程中,我在服务器上设置了大约20个计划任务,所有这些任务基本上都做同样的事情:调用一个小的.net控制台应用程序,从SQL数据库中提取数据并发布它到网络服务。 每个任务都会调用应用程序的单独副本,每个副本在其配置文件中具有不同的查找ID值。
除了其中两项任务外,其他所有任 其中两项任务似乎偶尔不时地停止运行,而且目前对于原因来说这是个谜。 当它们停止运行时,计划任务界面会正确显示其上次运行日期,这是其他任务的一天或更长时间,这些任务在预定时间继续运行。 尽管被指示按计划每晚运行,但停止运行的任务不会自行运行。 事件日志或计划任务界面本身没有记录错误。 这是我们最奇怪的部分:如果我手动启动计划任务,它运行正常,它会调用.net控制台应用程序,一切都完成,没有异常。 然后它在预定的时间继续运行,一次持续数天或数周,但最终失败,似乎突然出现。 似乎两个任务总是在同一个晚上开始失败。
有一个“最后结果”列,它应该为您提供与任务本身运行相关的代码(它不会有任何类型的异常数据)。 0表示任务已完成且没有错误。 你还可以查看其他任何内容,看看为什么任务无法启动。 如果任务似乎仍未运行,但您仍然看到最后结果为0,这意味着您的代码中存在某些内容,但它正在优雅地退出。
Taskscheduler在64位系统上假设应用程序是64位。 如果是从32位命令行启动32位,即如果要运行c:\\ program files(x86)\\ Myprogram \\ Program.exe,请告诉taskscheduler启动:
这迫使它从32位命令提示符启动,因此使用32位仿真。
你有没有设置“开始”属性?
如果这些.NET控制台应用程序需要app.config或其路径中的某些文件,则必须将“Start in”属性设置为“c:\\ your \\ app \\ path \\”,否则它们就像它们位于系统目录中一样,他们无法找到他们需要的文件!
就我而言,即使表示上次运行成功(0),计划任务也不会运行。 事实证明,正在运行作业的Windows用户帐户已被锁定。 我只是意识到这一点,因为我尝试编辑现有的计划任务,将用户帐户设置为同一个,然后点击确定,它给我一个关于被锁定帐户的错误。
将计划任务与无密码的Windows用户帐户关联时,会发生计划任务未运行的一个原因:默认情况下,禁止使用空密码运行计划任务。 如果要从没有密码的帐户运行计划任务,则必须禁用系统变量:
免责声明:不建议没有密码的帐户。
我找到了这个超级有用的链接 : https : //windowsreport.com/windows-scheduled-tasks-not-running/ ,用于许多用例的彻底调试步骤。
在我的情况下,调度程序配置为运行的用户帐户被锁定,停止执行计划任务而没有任何日志或报告问题。
以下SO问题的答案也可能与阅读此问题的人高度相关(但是,NB,它仅描述了计划任务的一个可能的特定问题,我相信这些问题都不是另一个的重复):
为什么我的计划任务正确更新其“上次运行时间”,并给出“(0x0)”的“上次运行结果”,但仍然没有实际工作?
给出另一个问题的答案摘要是Windows 2012计划任务没有看到任务设置为运行的帐户的正确环境变量,包括PATH。
就更一般的计划任务故障排除而言(如本问题中所述),您可以测试此特定问题(例如,在该任务中运行SET > test.txt
,如该答案中所建议的),并且一旦您看到它发生,如果影响你,你可以解决它。
也许他们挂了,还在跑?
您可以单击extras菜单并选择菜单条目以查看日志,然后记事本将从任务计划程序打开一个日志文件
当我试图解决一个行为不端的计划任务时,我发现此页面很有用:
http://support.microsoft.com/kb/308558
选择View-> Details以显示其他信息,例如Last Run Time和Status,这个页面给了我状态/错误代码的含义:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms681381(v=vs.85).aspx
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.