ASP.NET在SERVER端运行EXE

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",如果没有可以强行添加上。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值