我必须开发一个使用C#.net的应用程序,该应用程序必须每天运行一次。它最多只能运行一分钟,因此开发Windows服务已经过时了,并且计划任务是合适的方式。为Windows开发计划任务
不过,我对应用程序如何传达其结果几个问题:
- 如何指示该任务已经失败的任务调度?这是通过程序的退出代码吗?
- 如何记录输出信息?控制台输出是自动捕获还是必须显式写入事件查看器?
我必须开发一个使用C#.net的应用程序,该应用程序必须每天运行一次。它最多只能运行一分钟,因此开发Windows服务已经过时了,并且计划任务是合适的方式。为Windows开发计划任务
不过,我对应用程序如何传达其结果几个问题:
在回答您的问题 -
如果一个任务,因为它抛出一个未经检查的异常,你会看到,在Sheduled任务观众,将有一个“最后结果”具有价值的东西失败如0xe0434f4d
。或者,如果您返回的退出代码也将显示在“计划任务”查看器的“最后结果”列中。
写入控制台例如Console.WriteLine("blah");
不会出现在任何地方。您需要写入事件日志或日志文件。
AFAIK调度器只是启动一个进程。您可以使用事件日志或其他日志记录系统记录稍后需要引用的信息。
如果你去日志文件方式,你仍然可以使用Console.WriteLine("blah");
。诀窍是重定向标准出和错误流:
StreamWriter mylog = new StreamWriter("mylog.log");
Console.SetOut(mylog);
Console.SetError(mylog);
你也需要经常刷新缓冲区,以确保日志文件包含最新信息。
Console.Out.Flush();
这是快速和肮脏的,你真的应该使用Windows事件日志或log4net。
Log4net是一个很好的完整的日志框架。我可以强烈推荐它。