2 mathgary mathgary 于 2013.07.14 17:49 提问

部署在IIS上WCF服务执行服务端程序问题

WCF部署在IIS8.0上 其中一个服务是远程执行服务器上命令,服务器端的代码如下:
public string RunCommand(String cmd)
{
Process p = new Process();
p.StartInfo.FileName = "cmd.exe";

p.StartInfo.Arguments = "/c " + cmd;
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardInput = true;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.RedirectStandardError = true;
p.StartInfo.CreateNoWindow = false;

        p.Start();  
        p.StandardInput.WriteLine("exit");
        return p.StandardOutput.ReadToEnd();        
    }

也就是远程触发执行RunCommand()这个函数。
在我们的环境里,这里执行的是打开一个excel文件,输入的参数如:C:\Do_WORK.xls

Investigation Result:
IIS会产生一个IIS Worker Process的后台进程,通过这个后台进程来管理通过RunCommand() Call的excel进程,但是这样产生的excel进程是run在后台的,就不能执行Do_MTG.xls里面的vba程序。

问题:
如何才能让Do_WORK.xls像前台click打开一样打开并执行???

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!