我必須開發一個使用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是一個很好的完整的日誌框架。我可以強烈推薦它。