我試圖通過命令提示符從ASP.Net Web應用程序運行命令。我可以在Web服務器上的任務管理器中看到該進程啓動,但是該進程只是坐在那裏,並且不會退出,也不會運行我指定的命令。當通過Process.Start()調用時,爲什麼「cmd.exe/C命令」不會結束?
Process process = new Process();
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = "cmd.exe";
startInfo.Arguments = "/C " +command;
startInfo.UserName = "myuser";
startInfo.UseShellExecute = false;
startInfo.RedirectStandardOutput = true;
startInfo.Domain = "mydomain";
startInfo.CreateNoWindow = true;
String pass = "mypass";
System.Security.SecureString secPass = new System.Security.SecureString();
foreach (char c in pass.ToCharArray())
{
secPass.AppendChar(c);
}
secPass.MakeReadOnly();
startInfo.Password = secPass;
process.StartInfo = startInfo;
process.Start();
//output = process.StandardOutput.ReadToEnd();
process.WaitForExit();
process.Close();
我已經試過,沒有閱讀標準輸出。
應用程序將掛在process.WaitForExit();
,直到我殺通過任務管理器的進程。
如果您嘗試讀取標準輸出,您看過標準輸出是什麼?嘗試閱讀標準錯誤;你可能會得到某種錯誤信息,也許有人甚至會說「按任意鍵繼續...」,或者出現這種情況。 – GWLlosa 2011-01-28 16:58:27
@GWLlosa,標準輸出和標準錯誤都是空的。我想到了「按任意鍵......」,所以我試着給標準輸入寫一個字符,但還是什麼都沒有。 – 2011-01-28 17:15:30
爲什麼通過cmd運行它?爲什麼不直接運行它? – 2011-01-28 17:46:15