Я пытаюсь запустить .NET-приложение под другим пользователем из службы .NET. Идея заключается в создании изолированного хостинга в Windows. В сервисе я программно создавал пользователя в окнах, создавал папку для этого пользователя и загружал хост .exe с сервера в эту папку. Затем я запускаю host.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, но интерактивно в консоли, все работает нормально. Это происходит только при выполнении службы как службы, а не непосредственно в консоли.
Любая помощь была бы очень оценена. Это была головная боль в течение длительного времени, и это последнее средство: (