PHPパーサーがページを実行して、結果をサーバーに返すようにしようとしていますが、コードでコマンドを実行すると何も返されません。私はコマンドが正しいことを知っています。なぜなら、同じパスで手動で実行するとうまく動作するからです。 HERESに私のコード:C#:シェルコマンドの実行中の問題
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);
EDIT:この現在のコードでは 、それは何も出力しないコードで例外がスローされます。
あなたは詳細に説明した場合に何私たちはより良い解決策を見つけることができました。 –
「何も返さない」と言うと、プロセスが実行された後にresが空であることを意味するのですか、決してretutrnsしないということですか? –
申し訳ありませんが、空の文字列を返します –