C#控制台应用程序在Windows Server 2016任务计划程序中保持“正在运行”状态

4
我创建了一个简单的C# .net控制台应用程序。它是一个备份脚本,用于将文件复制到另一个文件夹,并在文件名中添加日期以保持其唯一性。脚本可以完美运行。
然而,当我将它安排在Windows任务计划程序中时,启动后状态会一直停留在“正在运行”,尽管应用程序已关闭。
我尝试在主函数结尾使用int返回值为0,也试图在应用程序的最后一行使用“System.Environment.Exit(0);”。我还删除了所有其他代码,只留下退出代码,以确保错误不在我的代码中。
复选框“如果请求时运行的任务未结束,请强制停止它”已启用。
所有这些都没有解决问题。
我正在运行Windows Server 2016。
有人知道我如何解决这个问题吗?

一个包含 EXIT 的简单批处理文件会发生这种情况吗?如果没有,您可以使用该批处理文件启动应用程序,然后在之后执行 EXIT。在检查状态之前,还要多次点击刷新按钮,因为据我所知它不会自动更新。 - sknt
@MarkBeijens 你能分享一下Main()方法吗? - Amey Kamat
9
你需要意识到,在任务计划程序中更新视图需要按F5或刷新。 - Dávid Molnár
是的,按下 F5 键解决了问题。 - Mark Baijens
2个回答

8
根据TechNet上的这个讨论,将你的exe文件放在批处理文件中可能会有帮助,但是根据我的经验,任务计划程序视图必须要主动刷新,例如按F5键。这个解决方法也适用于SuperUser上类似的问题。

是的,在我的情况下,我刷新了日程应用程序,任务显示为准备就绪。我使用的是Windows 11和NET 6.0控制台应用程序。 - undefined

1

可能是应用程序存在问题。您可以尝试按照以下步骤来查找问题:

  1. 创建一个全新的空控制台应用程序。
  2. 在任务计划程序中创建一个新的任务,不要设置任何触发器、选项等,只需添加运行控制台应用程序的操作。
  3. 测试一下,它应该能够正常工作。
  4. 逐步添加新功能,然后进行测试。
  5. 一旦遇到问题,您就知道是什么原因导致的。

我在Windows 10上完成了1-3步骤,并且结果符合预期。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接