2008-10-06 3 views
10

Мне нужно разработать приложение с использованием C# .net, которое должно запускаться один раз в день. Он работает не более одной минуты, поэтому разработка службы Windows является чрезмерной, и запланированная задача является подходящим способом.Разработка запланированной задачи для Windows

Однако, у меня есть несколько вопросов о том, как приложение может сообщить о своих результатах:

  • Как указать планировщик задач, что задача не удалось? Это через код выхода программы?
  • Как регистрировать выходные данные? Является ли вывод консоли автоматически захваченным или я должен явно писать в средство просмотра событий?

ответ

7

В ответе на ваши вопросы -

  1. Если задача не выполнена, потому что он бросил непроверенное исключение, вы увидите, что в окне просмотра Запрограммированных задач, там будет «последний результат» со значением чего-то подобный 0xe0434f4d. Альтернативно, если вы вернете код выхода, который также будет отображаться в столбце «Последний результат» средства просмотра запланированной задачи.

  2. Письмо на консоль, например. Console.WriteLine("blah"); нигде не появится. Вам нужно будет записать в журнал событий или в файл журнала.

0

AFAIK планировщик просто запускает процесс. Вы можете использовать журнал событий или другую систему ведения журнала для записи информации, необходимой для дальнейшего использования.

4

Если вы идете Log File путь, вы все еще можете использовать Console.WriteLine("blah");. Хитрость заключается в том, чтобы перенаправить стандартный Out и Error потоки:

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

Вам также необходимо очистить буферы часто, чтобы убедиться, что файл журнала содержит текущую информацию.

  Console.Out.Flush(); 

Это быстро и грязно, вы действительно должны использовать Windows, журнала событий или log4net.

0

Log4net - очень хорошая, полная система ведения журнала. Я могу очень порекомендовать его.

Смежные вопросы