进程C#不返回任何内容

时间:2019-02-22 08:01:06

标签: c# asp.net command-line process

我正在使用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();
        }

0 个答案:

没有答案