Я написал простое консольное приложение .NET Core (которое записывает некоторые файлы журнала, обращается к базе данных и отправляет несколько электронных писем). Запуск задачи двойным щелчком по файлу .exe в Windows работает нормально.
Однако при попытке запустить задачу через планировщик задач сразу же происходит сбой с кодом 0xC0000005
. Этот сбой происходит, когда на самом деле запускается по расписанию или если щелкнуть задачу правой кнопкой мыши в приложении планировщика задач и выбрать «Выполнить». Первое, что пытается сделать приложение, - это записать что-то в файл журнала, чего никогда не происходит.
На том же сервере есть множество других консольных приложений .NET (не ядро .NET), которые настроены с точно такими же разрешениями и учетными записями пользователей, и они работают нормально.
В журнале событий есть запись, которая гласит:
Имя сбойного приложения: StorePlay.ClientEmailer.exe, версия:
1.1.0.1179, отметка времени: 0x58224b03 Имя сбойного модуля: неизвестно, версия: 0.0.0.0, отметка времени: 0x00000000 Код исключения: 0xc0000005
Смещение ошибки: 0x00007ffaef1d8955 Идентификатор сбойного процесса: 0xe0c Ошибка
время запуска приложения: 0x01d301e534cdde90 Путь сбойного приложения:
C: \ storePlay \ Tasks \ Client Emailer \ StorePlay.ClientEmailer.exe Ошибка
путь к модулю: неизвестно Идентификатор отчета: 1bc8be44-744c-452e-a945-997d64d1d87b
Полное имя сбойного пакета: ID приложения, связанного с ошибочным пакетом:
Все это на машине под управлением Windows Server 2016
Я искал и пробовал всевозможные решения, и у меня сработало одно - установить опцию Start In. Обычно после просмотра у кого-то может быть полный путь в текстовом поле Программа / Сценарий, именно так выполнялось большинство задач, которые я видел. Похоже, что консольное приложение .Net Core должно запускаться с необязательным путем, чтобы оно могло найти appsettings.json, если вы его используете.
Возможно, ошибка связана с разрешениями. Обычно планировщик задач запускает задачу с системной учетной записью, и когда вы запускаете exe обычным способом в Windows, вы запускаете его со своими учетными данными. Вы должны иметь возможность установить свои учетные данные для самой задачи в планировщике задач или создать пользователя с необходимыми разрешениями.
Изменить: не видел возраст вопроса до тех пор, пока не опубликовал ответ, но если это поможет кому-то еще, тогда отлично :)