我试图让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