using using System.Diagnostics;
public string ExeCommand(string commandText)
{
Process p = new Process();
p.StartInfo.FileName = "NOTEPAD.exe"; //换成你要执行的
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardInput = true;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.RedirectStandardError = true;
p.StartInfo.CreateNoWindow = true;
string strOutput = null;
try
{
p.Start();
//p.StandardInput.WriteLine(commandText);
//p.StandardInput.WriteLine("exit");
//strOutput = p.StandardOutput.ReadToEnd();
p.WaitForExit();
p.Close();
}
catch (Exception e)
{
strOutput = e.Message;
}
return strOutput;
}
以上是基本语句从其他处我复制过来免得敲,这些代码也是最容易找到的,但是实际运行后的效果就是,在服务器端进程中有这个NOTEPAD.EXE在后台运行,并无实际运行效果。(例如你换成BAT的批处理,这个批处理会有CMD的进程挂在系统里,但是并不会自行批处理的内容)
这不是我们想要的结果,我们要的是能够通过前台WEB页面触发SERVER端让其运行某个程序进行某些处理。
修改2处:
1、修改服务中的,IIS Admin Server 服务,属性框中打开“登陆”页,勾选“本地系统帐户”下的“允许与桌面交互”项,点击确定。重新启动这项服务。
2、打开目录“C:/WINDOWS/Microsoft.NET/Framework/“找到对应的Framework版本目录,进入config目录,找到machine.config文件中的processModel项,修改userName="machine"属性,修改为userName="system",如果没有可以强行添加上。