13

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

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

4

9 回答 9

10

有一个“最后结果”列应该为您提供与正在运行的任务本身相关的代码(它不会有任何类型的异常数据)。0 表示任务完成且没有错误。您可以查找其他任何内容,看看为什么任务无法启动。如果任务似乎仍然没有运行,但您仍然看到 Last Result 为 0,这意味着您的代码中有问题,但它正在正常退出。

于 2009-05-14T20:48:36.840 回答
5

您是否设置了“开始于”属性?

如果这些 .NET 控制台应用程序需要 app.config 或位于其路径中的某些文件,则必须将“Start in”属性设置为“c:\your\app\path\”,否则它们就像在系统目录中一样启动,他们找不到他们需要的文件!

于 2014-12-18T23:20:56.017 回答
4

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

  • %systemroot%\Syswow64\cmd.exe /C "c:\program 文件 (x86)\Myprogram\Program.exe"

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

于 2013-09-15T15:52:08.673 回答
2

我发现这个超级有用的链接https ://windowsreport.com/windows-scheduled-tasks-not-running/用于许多用例的彻底调试步骤。

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

在此处输入图像描述

于 2019-08-30T05:44:58.487 回答
1

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

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

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

于 2011-01-14T20:26:08.060 回答
1

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

为什么我的计划任务正确更新其“上次运行时间”,并给出“(0x0)”的“上次运行结果”,但仍然无法正常工作?

对另一个问题给出的答案的总结是,Windows 2012 计划任务看不到正确的环境变量,包括 PATH,用于任务设置为运行的帐户。

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

于 2016-09-28T10:47:03.210 回答
1

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

于 2017-05-14T14:27:10.273 回答
0

也许他们挂了,还在跑?

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

于 2009-05-14T21:09:42.403 回答
0

当我尝试对行为不端的计划任务进行故障排除时,我发现此页面很有帮助: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

于 2012-01-17T23:22:57.947 回答