J'essaye d'obtenir l'analyseur PHP pour exécuter une page, puis renvoyer les résultats à mon serveur, mais quand j'exécute la commande via mon code, il ne renvoie rien. Je sais que la commande est correcte parce que si je l'exécute manuellement avec le même chemin, cela fonctionne très bien. Heres mon code:C#: Problème lors de l'exécution des commandes du 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);
EDIT: Avec ce code actuel, il jette l'exception dans le code sans sortie.
Peut-être que si vous expliquez en détail ce que vous Essayons de faire, nous pourrions trouver de meilleures solutions. –
Quand vous dites, "il ne retourne rien", voulez-vous dire res est vide après que le processus s'exécute ou qu'il ne se rétablit jamais? –
Désolé, renvoie une chaîne vide –