我試圖讓PHP解析器運行一個頁面,然後將結果返回給我的服務器,但是當我通過我的代碼運行命令時,它不返回任何內容。我知道該命令是正確的,因爲如果我用相同的路徑手動運行它,它工作正常。我的繼承人代碼:C#:運行shell命令的問題
var p = new Process
{
StartInfo = new ProcessStartInfo("C:\\xampp\\php\\php.exe", path)
{
RedirectStandardOutput = true,
RedirectStandardError = true,
UseShellExecute = false,
CreateNoWindow = true
}
};
var output = new StringWriter();
var error = new StringWriter();
p.OutputDataReceived += (sender, args) => output.WriteLine(args.Data);
p.ErrorDataReceived += (sender, args) => error.WriteLine(args.Data);
p.Start();
p.BeginOutputReadLine();
p.BeginErrorReadLine();
p.WaitForExit();
if (p.ExitCode != 0)
{
throw new Exception(string.Format(
"PHP failed with the following output:{0}{1}",
/* {0} */ Environment.NewLine,
/* {1} */ error.GetStringBuilder().ToString()));
}
var res = output.GetStringBuilder().ToString();
Console.WriteLine(res);
編輯: 有了這個當前的代碼,它拋出在沒有輸出的代碼除外。
也許如果您詳細解釋一下你正在努力去做,我們可以找到更好的解決方案。 – 2009-05-03 14:27:17
當你說「它什麼都沒有返回」時,你是說res在進程運行後是空的,還是永遠不會退步? – 2009-05-03 19:33:47
對不起,返回空字符串 – 2009-05-03 19:52:32