2008-10-06 116 views
10

我必须开发一个使用C#.net的应用程序,该应用程序必须每天运行一次。它最多只能运行一分钟,因此开发Windows服务已经过时了,并且计划任务是合适的方式。为Windows开发计划任务

不过,我对应用程序如何传达其结果几个问题:

  • 如何指示该任务已经失败的任务调度?这是通过程序的退出代码吗?
  • 如何记录输出信息?控制台输出是自动捕获还是必须显式写入事件查看器?

回答

7

在回答您的问题 -

  1. 如果一个任务,因为它抛出一个未经检查的异常,你会看到,在Sheduled任务观众,将有一个“最后结果”具有价值的东西失败如0xe0434f4d。或者,如果您返回的退出代码也将显示在“计划任务”查看器的“最后结果”列中。

  2. 写入控制台例如Console.WriteLine("blah");不会出现在任何地方。您需要写入事件日志或日志文件。

0

AFAIK调度器只是启动一个进程。您可以使用事件日志或其他日志记录系统记录稍后需要引用的信息。

4

如果你去日志文件方式,你仍然可以使用Console.WriteLine("blah");。诀窍是重定向标准错误流:

 StreamWriter mylog = new StreamWriter("mylog.log"); 
     Console.SetOut(mylog); 
     Console.SetError(mylog); 

你也需要经常刷新缓冲区,以确保日志文件包含最新信息。

  Console.Out.Flush(); 

这是快速和肮脏的,你真的应该使用Windows事件日志log4net

0

Log4net是一个很好的完整的日志框架。我可以强烈推荐它。