【问题标题】:How to run program through command line from .aspx page如何从 .aspx 页面通过命令行运行程序
【发布时间】:2012-03-13 19:04:19
【问题描述】:

我正在尝试使用 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进程运行!关于我可能做错了什么的任何想法?

【问题讨论】:

  • 为什么要运行 cmd.exe?为什么不直接运行 robocopy.exe?将 robocopy 的路径传递给您的 StartInfo.FileName 而不是 cmd.exe。
  • 如果你想从cmd调用这个可执行文件,你可能也应该写/c而不是c/
  • 你需要有一个专用服务器并配置它来运行一个exe文件或执行一个命令!
  • 哈哈,我认为 Yuriy 是正确的,因为它应该是 /c 而不是 c/ !!!不过,我也会考虑 MAtt 的建议。谢谢大家!

标签: c# asp.net


【解决方案1】:

听起来像是权限问题。通常,运行任何 IIS 进程的默认 asp_net 帐户在服务器上都没有执行权限。之所以会出现这种情况,是因为这是一个巨大的安全漏洞。我强烈建议您考虑一下您要完成的工作,看看是否有另一种方法可以做到这一点,而不涉及运行单独的可执行文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    相关资源
    最近更新 更多