2009-03-09 21 views
8

Ben startinfo Kullanıcı Adı, Domain, ve Şifre sağlayan bir Windows formu uygulama var ve bu atar:.NET Süreç Başlangıç ​​Süreci Hatası (tanıtıcı geçersiz)

System.ComponentModel. Win32Exception: kolu System.Diagnostics.Process.Start() at System.Diagnostics.Process.StartWithCreateProcess (ProcessStartInfo startinfo) de Ben kimlik geçerli kullanıcı varsayılan izin verdiğinizde

öyle olsun geçersiz hata ve başlattığım işlem, kimlik bilgilerini kullanması gerekmediği ölçüde çalışıyor (krediler MSBuild komut dosyasında bir sürücüyü eşlemek için gereklidir).

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(); 

Kötü bir Olun sağladıklarında, örneğin, onu yakalar çünkü kullanıcı/psw, eşleştirme olmadığı değil: Burada başlangıç ​​bilgisi doldurur kod. Yani, bu "geçersiz sap" şey, kredi geçtikten sonra oluyor. Neyi unuttuğum veya batırdığım hakkında bir fikrin var mı?

cevap

19

Giriş, Hata ve Çıktınızı yeniden yönlendirmeniz gerekir.

örneğin

: "girişini yönlendirmek için açılamıyor" Ayrıca mikroskop, hata okumak gerektiğini söyledi

ProcessStartInfo info = new ProcessStartInfo("cmd.exe"); 
info.UseShellExecute = false; 
info.RedirectStandardInput = true; 
info.RedirectStandardError = true; 
info.RedirectStandardOutput = true; 
info.UserName = dialog.User; 

using (Process install = Process.Start(info)) { 
     string output = install.StandardOutput.ReadToEnd(); 
     install.WaitForExit(); 
     // Do something with you output data  
    Console.WriteLine(output); 
} 

(bir bağlantıya sahipti, ancak artık işe yaramadı)

+0

Vay, evet. Zaten RedirectStandardOutput'ı true olarak ayarlıyordum, ancak diğer iki yönlendirmeyi değil. Diğer ikisini de doğru olarak ayarladım ve düzeltdim! Teşekkürler, @Chris Lively! – Cyberherbalist

+0

Teşekkürler, bu hata iletisiyle kafam karışıyordu. – Cwoo

+0

Şerefe bunun için - Ben bununla eğlendim. –