Я пытаюсь запустить приложение .NET под другим пользователем из службы .NET. Идея состоит в том, чтобы создать изолированное хостинговое приложение в Windows. В службе я программно создал пользователя в Windows, создал папку для этого пользователя и загрузил в эту папку файл .exe с сервера. Затем я запускаю хост .exe, используя System.Diagnostics.Process. Вот StartInfo для процесса:
_process = new Process
{
StartInfo =
{
Arguments = " -debug",
FileName = instanceDirectory + "host.exe",
WorkingDirectory = instanceDirectory,
UseShellExecute = false,
RedirectStandardError = true,
RedirectStandardOutput = true,
RedirectStandardInput = true,
UserName = Helpers.GetUserNameForInstance(_hostid),
Password = _hostpass,
Domain = ""
},
EnableRaisingEvents = true
};
Когда я запускаю службу как СЕРВИС, процесс мгновенно завершает работу с кодом ошибки -1073741502. но когда я запускаю службу от имени того же пользователя, который указан в службе Windows, но в интерактивном режиме в консоли, все работает нормально. Это происходит только тогда, когда служба запускается как СЕРВИС, а не непосредственно в консоли.
Любая помощь будет очень признательна. Это было головной болью в течение долгого времени, и это последнее средство: (