СТАРОЕ ОПИСАНИЕ:
У меня есть приложение .NET, которое я написал сам и пытаюсь настроить для запуска в качестве запланированной задачи в Windows Server 2008 R2. Когда я сам запускаю приложение из командной строки, оно работает нормально. Однако, когда я настраиваю задачу, она завершает задачу в течение 1 секунды после запуска и сообщает, что завершена успешно, хотя, конечно, приложение НЕ запускалось. Из-за этого я не получаю сообщений об ошибках, регистрируемых планировщиком или приложением. Если я уберу аргумент («авто»), он «запустит» задачу, но никогда не откроет консоль для отображения меню.
Вот что я пробовал до сих пор:
Я до сих пор неравнодушен к администрированию серверов, поэтому, возможно, я что-то упустил, но я не знаю, что это, если бы я сделал. Я нашел здесь один вопрос, который, похоже, был связан (графический интерфейс не загружается для запланированной задачи), но он немного отличается, потому что, по крайней мере, тот действительно выполнял часть задачи.
ОБНОВИТЬ:
Покопавшись, я обнаружил, что приложение на самом деле имеет был запущен, но из-за чего-то, я думаю, я не знал о пространстве имен настроек по умолчанию в .NET, расположение в файле конфигурации, где приложение хранит / считывает учетные данные веб-службы, зависит от того, сидите ли вы там, где запускаете приложение или приложение запускается через TS. Все еще пытаюсь найти способ обойти это ...
Как бы то ни было, я нахожусь именно здесь: приложение выдает ошибки SSL / TLS всякий раз, когда планировщик задач пытается запустить приложение. У меня есть сертификат, хранящийся в подкаталоге домашнего каталога приложения (E: \ Appname), и, как и в случае с учетными данными, запуск приложения вручную не вызывает проблем с подключением. Я удостоверился, что в сертификате и его папке указан владелец задачи с полным контролем.
Я что-то еще упускаю?
Если вы пытаетесь отладить невыполненную задачу, которая выполняется в контексте безопасности СИСТЕМЫ (который используется по умолчанию для запланированной задачи), вам следует получить копию psexec.exe и беги psexec -s cmd.exe
. Это даст вам интерактивный сеанс cmd как SYSTEM. Вы можете проверить это, запустив whoami
из этой новой командной строки.
Попробуйте запустить свое приложение отсюда. Вы сможете увидеть любой вывод, который он может записывать на консоль. Поскольку это настраиваемое приложение, я думаю, вам будет сложно найти окончательный ответ, поскольку мы не знаем, что на самом деле делает ваш код. Получение интерактивного сеанса как SYSTEM, по крайней мере, покажет вам, проблема ли это с разрешением или проблема с настройками, которые вы используете в Планировщике задач.
Как выясняется, проблема заключалась в том, что файл конфигурации хранился в каталоге AppData \ Local для пользователя, который запускал приложение, когда были изменены параметры конфигурации (возможность, которую я добавил в программу при запуске без " авто "аргумент). Поскольку я входил в систему, чтобы выполнить настройку и не у пользователя, которому была назначена задача, не было файла user.config для пользователя задачи, отсюда и отсутствие пригодных для использования данных конфигурации. Исправлено согласование задачи пользователя и наличия файла user.config.