アプリケーションのサンドボックス化が必要なプロジェクトに取り組んでいます。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の[サービス]パネルに従って、ローカルシステムで実行されています。
何か案は?