我正在使用Process,它的行为很奇怪。我需要使用“处理我的WebSections.exe”程序执行代码。有趣的是,当我传递错误的参数时,它表明结果是错误的,当我传递正确的参数时,它不会显示任何内容,就像它根本不会执行任何操作一样。 因此,我程序的参数是WebSections.exe f(.xml文件)。 但是,如果我使用与代码中相同的参数但直接在命令行中调用,它将起作用。
我还注释了.ExitCode,因为它显示:“ System.Exception:在简单页面上返回错误代码2的程序。”。但是,随着它的评论,它似乎正在工作。
Process p;
ProcessStartInfo psi = new ProcessStartInfo();
psi.FileName = "C:\\inetpub\\WebSections\\Program\\WebSections.exe";
psi.Arguments = "f C:\\Users\\HrchM\\Desktop\\Program\\Current_Diagram\\diagramResult.xml";
psi.WorkingDirectory = "C:\\inetpub\\WebSections\\TempFolder";
psi.UseShellExecute = false;
psi.CreateNoWindow = true;
psi.RedirectStandardInput = true;
psi.RedirectStandardOutput = true;
psi.RedirectStandardError = true;
p = Process.Start(psi);
try
{
string output = p.StandardOutput.ReadToEnd();
p.WaitForExit(60000);
/* if (p.ExitCode != 0)// returns 255 when it can’t write to the temp folder (C:\inetpub\WebSections, CZ-CRM\IIS_IUSRS, Modify, replace all child objects)
throw new Exception("Program returned with error code " + p.ExitCode); */
ViewData["Content"] = output.ToString();
}
catch (Exception ex)
{
ViewData["Content"] = ex.ToString();
}
finally
{
p.Close();
p.Dispose();
}