Разработка запланированного задания для Windows - PullRequest
10 голосов
/ 06 октября 2008

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

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

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

Ответы [ 4 ]

7 голосов
/ 06 октября 2008

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

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

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

4 голосов
/ 06 октября 2008

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

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

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

            Console.Out.Flush();

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

0 голосов
/ 06 октября 2008

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

0 голосов
/ 06 октября 2008

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...