У меня есть консольное приложение .NET, работающее на Windows Server 2003 в качестве запланированной задачи.
Он использует класс Process для запуска другого небольшого консольного приложения, но использует Process.StartInfo.Username, чтобы олицетворять пользователя, от имени которого оно запускается.
Если учетная запись, олицетворенная в запланированной задаче в администраторе, то она работает отлично, но если нет, то я получаю сообщение об ошибке:
«Не удалось правильно инициализировать приложение (0xc0000142)»
Я попытался дать пользователю «вход в систему как пакетное задание» и «вход в систему локально», но это, похоже, не имело никакого эффекта. Консольное приложение запускается как олицетворенный пользователь, но затем терпит неудачу.
Глядя на Process Monitor, последнее событие перед отказом:
Tool1.exe - Загрузить образ - C: \ WINDOWS \ system32 \ kernel32.dll - УСПЕХ
Я запустил Depends на инструменте, и он сообщает, что это ошибка:
GetProcAddress (0x77E40000 [c: \ windows \ system32 \ KERNEL32.DLL], «FlsAlloc») вызывается из «c: \ windows \ system32 \ MSCOREE.DLL» по адресу 0x7900746D и возвращает 0x77E6B49C по потоку 1. Выход из c: \ stfinstall \ stf \ tools \ tool1 \ TOOL1.EXE "(процесс 0xB3C) с кодом 1282 (0x502) по потоку 1.
Если кто-нибудь знает что-нибудь о том, что может вызывать эту ошибку, или, что еще лучше, как я могу ее исправить, дайте мне знать!
Также приветствуются предложения об альтернативном подходе.
Спасибо :)