【发布时间】:2011-08-31 07:02:38
【问题描述】:
我已经为内部服务器构建了一个网络服务,我想向它发送命令并让它启动一个进程。所以我想像这样向它发送一个命令:
http://machine:999/execute?path=c:\scripts\dostuff.exe&args=-test
然后端点会做这样的事情:
public ActionResult(string path, string args)
{
var proc = new System.Diagnostics.Process();
proc.StartInfo.FileName = path;
proc.StartInfo.Arguments = args;
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.CreateNoWindow = true;
proc.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
proc.StartInfo.RedirectStandardOutput = true;
//Hook into all standard output here
//Block until process is returned - Async Controller action
return Content(output.ToString())
}
我希望能够捕获可执行文件生成的所有错误消息和标准输出。可执行文件可以是控制台应用程序或 powershell 脚本之类的任何东西。做这种事情的最佳方法是什么?
【问题讨论】:
标签: c# asp.net-mvc-3 .net-4.0 redirectstandardoutput