.NET 서비스에서 다른 사용자로 .NET 응용 프로그램을 시작하려고합니다. 아이디어는 Windows에서 샌드 박스 호스팅 응용 프로그램을 만드는 것입니다. 이 서비스에서, 나는 프로그램 적으로 윈도우에서 사용자를 생성하고, 그 사용자에 대한 폴더를 생성하고, 서버에서 호스트 .exe를 그 폴더로 다운로드한다. 그럼 System.Diagnostics.Process를 사용하여 호스트 .exe를 실행합니다. 여기에 프로세스의 StartInfo은 다음과 같습니다.NET 서비스에서 .NET 사용자를 다른 사용자로 시작할 때 사용 권한 문제가 있습니까?
_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 서비스에 지정된 동일한 사용자로 서비스를 실행하지만 콘솔에서 대화식으로 실행하면 모든 것이 올바르게 작동합니다. 이는 서비스를 SERVICE로 실행하고 콘솔에서 직접 실행하지 않을 때만 발생합니다.
도움이 될 것입니다. 이제이 오랫동안 두통이었다 이것은 최후의 수단 :(
서비스 자격 증명을 일으킬 수 있습니다 서버 사이의 이중 홉이 떨어 얻을
콘솔 응용 프로그램에서 실행되는 동일한 코드를 테스트 했습니까? –
예, 모든 것이 잘 작동하여 독립 실행 형 모드로 실행됩니다. 서비스로만 실행되는 문제가 있습니다. –
안녕하세요, 귀하가 말한 것처럼 서비스가 아닐 때 실행되기 때문에 권한 문제와 같은 것 같습니다. 이 링크는 도움이 될 수 있습니다. http://asprosys.blogspot.com/2009/03/perils-and-pitfalls-of-launching.html – keyboardP