Sto cercando di avviare un'applicazione .NET con un utente diverso da un servizio .NET. L'idea è di creare un'applicazione di hosting in modalità sandbox in Windows. Nel servizio, ho creato l'utente in modo programmatico in Windows, creare una cartella per quell'utente e scaricare l'host .exe da un server in quella cartella. Quindi eseguo l'host .exe utilizzando System.Diagnostics.Process. Ecco l'StartInfo per il processo:Problemi di autorizzazione all'avvio dell'app .NET dal servizio .NET come utente diverso?
_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
};
Quando eseguo il servizio come un servizio, il processo si blocca istantaneamente con un codice di errore di -1.073,741502 millions. ma quando eseguo il servizio come lo stesso utente specificato nel servizio Windows ma interattivamente nella console, tutto funziona correttamente. Questo accade solo quando si esegue il servizio come servizio e non direttamente nella console.
Qualsiasi aiuto sarebbe MOLTO apprezzato. Questo è stato un mal di testa per un lungo tempo e questo è l'ultima risorsa :(
hai testato lo stesso codice in esecuzione in un'applicazione console? –
sì, tutto funziona bene in modalità standalone .. ha solo problemi di esecuzione come servizio. –
Ciao, come dici tu, sembra un problema di autorizzazione perché viene eseguito quando non è un servizio. Questo link potrebbe aiutare: http://asprosys.blogspot.com/2009/03/perils-and-pitfalls-of-launching.html – keyboardP