Я работаю над проектом, который требует изолированной среды приложения.Я могу создать пользователя Windows, создать каталог, заполнить каталог приложением и запустить приложение как пользователь.Это прекрасно работает при запуске консольного приложения, но когда я устанавливаю его как службу, я получаю следующее исключение:
System.ComponentModel.Win32Exception: Access is denied
at System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo)
at System.Diagnostics.Process.Start()
Код, который выдает это исключение:
_process = new Process
{
StartInfo =
{
Arguments = "",
CreateNoWindow = true,
ErrorDialog = false,
FileName = instanceDirectory + "program.exe",
WorkingDirectory = instanceDirectory,
UseShellExecute = false,
UserName = GetUserNameForInstance(_id),
Password = GetPasswordForInstance(_id),
Domain = ""
},
EnableRaisingEvents = true
};
_process.Exited += ProcessExited;
_process.Start();
Опять же, это выбрасывается только при запуске в качестве службы Windows.Служба работает в локальной системе в соответствии с панелью «Службы» в Windows.
Есть идеи?