小编Mar*_*inL的帖子

Task Scheduler控制台输出在哪里?(C#控制台应用程序)

我正在运行C#Windows控制台应用程序,并通过Task Scheduler传递了几个参数。它全天运行,将其他应用程序创建的平面文件数据加载到SQL Server中。该程序间歇性地失败,并且我具有Try / Catch逻辑,该逻辑使用Console.WriteLine()写入有关异常的信息。

因此,基本上我需要跟踪控制台输出的位置,以便可以采取措施消除间歇性故障。我在网上浏览了很多,认为这是诊断Task Scheduler计划的应用程序中的错误的相当普遍的要求。我的在线搜索显示了一些解决方案,但是当直接通过Task Scheduler运行ac#控制台应用程序时,关于控制台输出的位置没有直接答案。

我看到的两个解决方法是:

(1)获取任务计划程序以运行Windows批处理脚本(.bat文件),而不是直接运行控制台应用程序(.exe文件)。在批处理脚本中,使用“>”或“ >>”将控制台输出重定向到平面文件(例如C:\ app \ myapp.exe arg1 arg2>“ C:\ log \ myapp_console_output.txt”)

(2)一个非常相似的解决方案是让Task Scheduler使用/ C选项运行Windows命令行cmd.exe,并将参数传递到cmd.exe中以运行我的控制台应用程序,并重定向控制台输出。例如:cmd.exe / C“ C:\ app \ myapp.exe” arg1 arg2>“ C:\ log \ myapp_console_output.txt”

尽管我承认上述变通办法很可能会帮助我捕获将来的故障,但并不能真正帮助我跟踪已发生的间歇性故障的输出。它们似乎也很杂乱,无法实现我认为是非常常见的标准要求。

任何人都可以确认直接通过Task Scheduler运行ac#控制台应用程序时,控制台输出肯定不会保留在某处吗?

c# console-application taskscheduler

5
推荐指数
1
解决办法
1542
查看次数

标签 统计

c# ×1

console-application ×1

taskscheduler ×1