如何从.aspx页面通过命令行运行程序

时间:2012-03-13 19:04:20

标签: c# asp.net

我正在尝试使用System.Diagnostics.Process对象通过aspx页面运行程序,例如“robocopy.exe”。

我的代码如下所示:

Process si = new Process();
si.StartInfo.UserName = "testuser";
si.StartInfo.Password = password;
si.StartInfo.FileName = "cmd.exe";
si.StartInfo.UseShellExecute = false;       

si.StartInfo.Arguments = "c/ robocopy.exe";

si.Start();
string output = si.StandardOutput.ReadToEnd();
si.Close();

Label1.Text = output;

问题是cmd.exe进程正确启动,但没有任何反应。 roboxopy.exe的参数可能不会传递给cmd进程来运行!关于我可能做错什么的任何想法?

1 个答案:

答案 0 :(得分:6)

听起来像是一个权限问题。通常,运行任何IIS进程的默认asp_net帐户将不具有服务器上的执行权限。这种情况的原因是因为它是一个巨大的安全漏洞。我强烈建议您考虑一下您要完成的任务,看看是否有其他方法可以执行此操作而不涉及运行单独的可执行文件。