Estoy tratando de iniciar una aplicación .NET bajo un usuario diferente de un servicio .NET. La idea es crear una aplicación de alojamiento de espacio aislado en Windows. En el servicio, creé programáticamente el usuario en Windows, creé una carpeta para ese usuario y descargué el .exe del host de un servidor en esa carpeta. Luego ejecuto el host .exe usando System.Diagnostics.Process. Aquí está el StartInfo para el proceso:¿Problema de permisos al iniciar la aplicación .NET del servicio .NET como un usuario diferente?
_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
};
Cuando ejecuto el servicio como un servicio, el proceso se bloquea al instante con un código de error -1073741502. pero cuando ejecuto el servicio como el mismo usuario especificado en el servicio de Windows pero interactivamente en la consola, todo funciona bien. Esto solo ocurre cuando se ejecuta el servicio como un SERVICIO y no directamente en la consola.
Cualquier ayuda sería MUCHO apreciada. Este ha sido un dolor de cabeza durante mucho tiempo y este es el último recurso :(
ha probado el mismo código que se ejecuta en una aplicación de consola? –
sí, todo funciona bien en el modo independiente ... solo tiene problemas para ejecutarse como servicio. –
Hola, Como dices, parece un problema de permiso porque se ejecuta cuando no es un servicio. Este enlace puede ayudar: http://asprosys.blogspot.com/2009/03/perils-and-pitfalls-of-launching.html – keyboardP