如何在带有ASP.NET和C#的Windows Server 2008 R2上使用参数执行exe?

时间:2014-06-23 08:13:11

标签: c# asp.net iis-7 process windows-server-2008-r2

净申请。我想显示其他exe程序的输出。我在开发的PC上测试我的程序,但是如果我在Windows Server 2008 r2(IIS7)上安装应用程序,那么我就不会得到输出。我一无所获:(

我尝试添加此exe硬编码的路径,但这仅适用于开发PC。

这是我的C#代码:

protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                try
                {
                    string path = @"C:\\Windows\\TEMP\\lstc_qrun.exe -s lwserv-lic -R";

                    Response.Write(path);

                    string o = class.ExecuteCommand(path);

                    txtoutput.Text = o;

                }
                catch (Exception ex)
                {
                    Response.Write(ex.Message);
                }

            }
        }

string path是这个exe的路径和我用来获取输出的命令。在WinServer08R2上是C:\ windows中的临时路径...我将exe放在temp文件夹中。

路径在服务器上是正确的。如果我在终端上测试exe而不是输出!

这是我的ExecuteCommand方法:

public static string ExecuteCommand(string command)
        {
            int exitCode;
            ProcessStartInfo processInfo;
            Process process;

            try
            {
                processInfo = new ProcessStartInfo("cmd.exe", "/c " + command);
                processInfo.CreateNoWindow = true;
                processInfo.UseShellExecute = false;
                processInfo.RedirectStandardError = true;
                processInfo.RedirectStandardOutput = true;


                using (process = Process.Start(processInfo))
                {
                    string output = process.StandardOutput.ReadToEnd();
                    exitCode = process.ExitCode;

                    return output;
                }

            }
            catch (Exception ex)
            {
                return "error: " + ex.Message;
            }

        }

我不明白什么是开发机器的差异:-(?

路径是正确的! 如果我用终端测试它,那么Exe在服务器上工作! 我没有得到输出......没有错误!

帮帮我

0 个答案:

没有答案