Ho un'applicazione Windows Form che fornisce il nome utente, dominio e password al StartInfo, e getta in questo modo:.NET Errore di processo di avvio del processo utilizzando le credenziali (l'handle non valido)
System.ComponentModel. Win32Exception: l'handle non valido a System.Diagnostics.Process.StartWithCreateProcess (ProcessStartInfo startInfo) a System.Diagnostics.Process.Start()
Quando mi permetto le credenziali da utilizzare come predefinito dell'utente corrente ottengo tale errore, e il processo che inizio funziona nella misura in cui non è necessario utilizzare le credenziali (i crediti sono n ecessary per mappare un'unità in uno script MSBuild). Ecco il codice che riempie le informazioni di partenza:
Process p = new Process();
ProcessStartInfo si = new ProcessStartInfo(buildApp, buildArgs);
si.WorkingDirectory = msBuildWorkingDir;
si.UserName = txtUserName.Text;
char[] psw = txtPassword.Text.ToCharArray();
SecureString ss = new SecureString();
for (int x = 0; x < psw.Length; x++)
{
ss.AppendChar(psw[x]);
}
si.Password = ss;
si.Domain = "ABC";
si.RedirectStandardOutput = true;
si.UseShellExecute = false;
si.WorkingDirectory = txtWorkingDir.Text;
p.StartInfo = si;
p.Start();
Non è che l'utente/PSW non corrisponde, perché quando mi forniscono un cattivo PSW, per esempio, la prende. Quindi, questa cosa "handle invalido" sta accadendo dopo che il cred è passato. Qualche idea su cosa potrei omettere o rovinare?
Wow, sì. Stavo già impostando RedirectStandardOutput su true ma non sugli altri due reindirizzamenti. Ho impostato gli altri due su true e l'ho risolto! Grazie, @Chris Lively !! – Cyberherbalist
Grazie, stava diventando piuttosto confuso da quel messaggio di errore. – Cwoo
Cheers per questo - Mi sono divertito con questo. –