Windows планировщик задач, созданный программно в C#, не запускается автоматически - PullRequest
0 голосов
/ 14 февраля 2020

Я автоматически создал windows планировщик задач в c#. Задача создана успешно и запланирована для правильного выполнения. В запланированное время говорится, что задача выполняется, но без результата, и обновляется время следующего расписания.

Но время последнего запуска и результат последнего запуска не обновляются.

Результат последнего запуска is: Задача еще не запущена. (0x41303)

Но при запуске вручную из планировщика задач она выполняется успешно, но не автоматически.

Ниже кода, который я использовал для создания задачи

var ts = new TaskService();
var td = ts.NewTask();
td.RegistrationInfo.Author = "My company";
td.RegistrationInfo.Description = "Runs test application";
var trigger = new WeeklyTrigger { StartBoundary = startDate, DaysOfWeek = daysOfWeek, Enabled = enabled };
trigger.Repetition.Interval = TimeSpan.FromSeconds(((minutes == 0) ? 60 : minutes) * 60);
td.Triggers.Add(trigger);
var action = new ExecAction(Assembly.GetExecutingAssembly().Location, null, null);
if (filePath != string.Empty && File.Exists(filePath))
{
    action = new ExecAction(filePath);
}
action.Arguments = "AutoRun";
td.Actions.Add(action);
ts.RootFolder.RegisterTaskDefinition(TaskName, td);

Любая помощь будет высоко ценится!

1 Ответ

0 голосов
/ 14 февраля 2020

Сначала проверьте права выполнения. Затем проверьте диспетчер задач, действительно ли процесс выполняется, когда он кажется «запущенным». Если да, попробуйте использовать некоторые блоки try-catch и создавать журналы событий в качестве исключений.

Я думаю, что при запуске вручную из планировщика задач он выполняется пользователем, который принадлежит планировщику задач (может быть администратором). Но в назначенное время приложение пытается исполниться как пользователь, у которого недостаточно прав для выполнения каких-либо действий в вашем коде.

ОБНОВЛЕНИЕ

  1. Установить запуск (необязательно) значение для целевого расположения файла. Без него планировщик задач работает в папке system32, но, как я уже говорил, целевое приложение не будет иметь привилегий для запуска в system32.
  2. Попробуйте изменить версию консольного приложения на 32-разрядную.

    т.е. щелкните правой кнопкой мыши Перейти к -> Свойства -> Построить -> Платформа Target = x86.

...