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);
편집 :이 현재 코드로 , 그것은 전혀 출력 코드에서 예외가 발생합니다.
당신이 자세히 설명하면 무엇 우리는 더 나은 해결책을 찾을 수있었습니다. –
"아무것도 반환하지 않습니다"라고 말하면 프로세스가 실행 된 후 res가 비어 있거나 결코 다시 돌아 가지 않는다는 것을 의미합니까? –
죄송합니다. 빈 문자열 –