如何解决Windows预定任务未运行的问题?

时间:2009-05-14 20:44:21

标签: windows scheduled-tasks

在部署我们的.net应用程序的过程中,我在服务器上设置了大约20个计划任务,所有这些任务基本上都做同样的事情:调用从SQL db中提取数据的小型.net控制台应用程序并将其发布到Web服务。每个任务都会调用应用程序的单独副本,每个副本在其配置文件中具有不同的查找ID值。

除了其中两项任务外,其他所有任务每晚都可靠运行。其中两项任务似乎偶尔不时地停止运行,而且目前对于原因来说这是个谜。当它们停止运行时,计划任务界面会正确显示其上次运行日期,这是其他任务的一天或更长时间,这些任务在预定时间继续运行。尽管被指示按计划每晚运行,但停止运行的任务不会自行运行。事件日志或计划任务界面本身没有记录错误。这是我们最奇怪的部分:如果我手动启动计划任务,它运行正常,它会调用.net控制台应用程序,一切都完成,没有异常。然后它在预定的时间继续运行,一次持续数天或数周,但最终失败,似乎突然出现。看来这两个任务总是在同一个晚上开始失败。

9 个答案:

答案 0 :(得分:9)

有一个“最后结果”列应该为您提供与任务本身运行相关的代码(它不会有任何类型的异常数据)。 0表示任务已完成且没有错误。你还可以查看其他任何内容,看看为什么任务无法启动。如果任务似乎仍未运行,但您仍然看到最后结果为0,则表示您的代码中存在某些内容,但它正在优雅地退出。

答案 1 :(得分:4)

Taskscheduler在64位系统上假定应用程序是64位。 如果它是从32位命令行32位启动,即如果你想运行c:\ program files(x86)\ Myprogram \ Program.exe,告诉taskscheduler启动:

  • %systemroot%\ Syswow64 \ cmd.exe / C“c:\ program files(x86)\ Myprogram \ Program.exe”

这迫使它从32位命令提示符启动,因此使用32位仿真。

答案 2 :(得分:3)

你设置了"开始"属性?

如果这些.NET控制台应用程序需要app.config或其路径中的某些文件,则必须设置"开始使用"属性为" c:\ your \ app \ path \,否则它们就像它们在系统目录中一样,并且找不到所需的文件!

答案 3 :(得分:1)

将计划任务与无密码的Windows用户帐户关联时,会发生计划任务未运行的一个原因:默认情况下,禁止使用空密码运行计划任务。如果要从没有密码的帐户运行计划任务,则必须禁用系统变量:

  • 转到:开始>管理工具>地方安全政策>安全设置>地方政策>安全选项
  • 选择:“帐户:限制本地帐户使用空白密码仅限控制台登录”
  • 禁用此变量

免责声明:不建议没有密码的帐户。

答案 4 :(得分:1)

在我的情况下,即使表示上次运行成功(0),计划任务也不会运行。事实证明,正在运行作业的Windows用户帐户已被锁定。我只是意识到这一点,因为我尝试编辑现有的计划任务,将用户帐户设置为同一个,然后点击确定,它给我一个关于该帐户被锁定的错误。

答案 5 :(得分:1)

我发现了这个超级有用的链接https://windowsreport.com/windows-scheduled-tasks-not-running/,可以针对许多用例进行彻底的调试。

在我的情况下,配置了计划程序以运行的用户帐户被锁定,从而停止了计划任务的执行,而没有任何日志或报告问题。

enter image description here

答案 6 :(得分:0)

也许他们挂了,还在跑步?

您可以单击extras菜单并选择菜单条目以查看日志,然后记事本将从任务计划器中打开日志文件

答案 7 :(得分:0)

当我试图解决行为不端的预定任务时,我发现此页面很有用:
http://support.microsoft.com/kb/308558

选择查看 - >详细信息以显示其他信息,例如上次运行时间和状态,此页面显示了状态/错误代码的含义:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms681381(v=vs.85).aspx

答案 8 :(得分:0)

以下SO问题的答案也可能与阅读此问题的人高度相关(但是,NB,它仅描述了计划任务的一个可能的特定问题,我相信这些问题都不是另一个的副本):

Why is my Scheduled Task updating its 'Last Run Time' correctly, and giving a 'Last Run Result' of '(0x0)', but still not actually working?

对另一个问题的答案摘要是,Windows 2012计划任务没有看到任务设置为运行的帐户的正确环境变量,包括PATH。

就更一般的计划任务故障排除而言(如本问题中所述),您可以测试此特定问题(例如,在该任务中运行SET > test.txt,如该答案中所建议的),并且一旦您可以看到它发生,你可以解决它,如果它影响你。