СТАРОЕ ОПИСАНИЕ:

У меня есть приложение .NET, которое я написал сам и пытаюсь настроить для запуска в качестве запланированной задачи в Windows Server 2008 R2. Когда я сам запускаю приложение из командной строки, оно работает нормально. Однако, когда я настраиваю задачу, она завершает задачу в течение 1 секунды после запуска и сообщает, что завершена успешно, хотя, конечно, приложение НЕ запускалось. Из-за этого я не получаю никаких ошибок, регистрируемых планировщиком или приложением. Если я беру аргумент («авто»), он «запускает» задачу, но никогда не открывает консоль для отображения меню.

Это то, что я пробовал до сих пор:

  1. Указание задаче запустить приложение напрямую.
  2. Указание задаче запустить пакетный сценарий, запускающий приложение.
  3. Указание задаче открыть cmd.exe с аргументом / C "applocation \ appname auto".
  4. Смена владельца задачи на учетную запись пользователя, созданную специально для выполнения задач (обратите внимание, что эта учетная запись пользователя отлично подходит для выполнения других задач).
  5. Явное предоставление этой учетной записи пользователя полного контроля над задействованными каталогами.
  6. Смена владельца задействованных каталогов одному и тому же пользователю.
  7. Изменение разрешений безопасности для приложения, чтобы всегда запускать от имени администратора.
  8. Смотрю на экран и разочарованно качаю головой.

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

ОБНОВИТЬ:

После некоторого более копания, я обнаружил , что приложение на самом деле уже был запущен, но из - за чего - то я предполагаю , что я не знал о пространстве имен по умолчанию в настройках .NET, расположение в файле конфигурации , где приложение хранит / считывает веб - службы учетные данные различаются в зависимости от того, запускаете ли вы приложение или приложение запускается через TS. Все еще пытаюсь найти способ обойти это ...

Как бы то ни было, я сейчас именно здесь: приложение выдает ошибки SSL / TLS всякий раз, когда планировщик задач пытается запустить приложение. У меня есть сертификат, хранящийся в подкаталоге домашнего каталога приложения (E: \ Appname), и, как и в случае с учетными данными, запуск приложения вручную не вызывает проблем с подключением. Я убедился, что в сертификате и его папке указан владелец задачи с полным контролем.

Я что-нибудь еще упускаю?

answer

Если вы пытаетесь отладить невыполненную задачу, которая выполняется в контексте безопасности СИСТЕМЫ (который используется по умолчанию для запланированной задачи), вам следует получить копию psexec.exe и запустить ее psexec -s cmd.exe. Это даст вам интерактивный сеанс cmd как SYSTEM. Вы можете проверить это, запустив whoamiновую командную строку.

Попробуйте запустить свое приложение отсюда. Вы сможете увидеть любой вывод, который он может записывать на консоль. Поскольку это настраиваемое приложение, я думаю, вам будет сложно найти окончательный ответ, поскольку мы не знаем, что на самом деле делает ваш код. Получение интерактивного сеанса как SYSTEM, по крайней мере, покажет вам, проблема ли это с разрешением или проблема с настройками, которые вы используете в планировщике задач.

Как выяснилось, проблема заключалась в том, что файл конфигурации хранился в каталоге AppData \ Local для пользователя, который запускал приложение, когда были изменены параметры конфигурации (возможность, которую я добавил в программу при ее запуске без " авто "аргумент). Поскольку я входил в систему для настройки, а не для пользователя, которому была назначена задача, для пользователя задачи не было файла user.config, отсюда и отсутствие пригодных для использования данных конфигурации. Исправлено согласование задачи пользователя и наличия файла user.config.