如何使用ASP.NET在Windows 2008上执行EXE文件

时间:2011-04-14 13:20:23

标签: c# asp.net windows permissions

如何使用ASP.NET和IIS7在Windows 2008上执行EXE文件?我试图在下面运行代码,但似乎不起作用。代码执行没有任何错误,但我没有在进程列表中看到记事本。如果我使用ASP.NET开发人员服务器但不使用IIS7,一切正常。

string enginePath = "notepad";

var password = new System.Security.SecureString();
foreach (char character in ConfigurationManager.AppSettings["Credentials"])
    password.AppendChar(character);

var p = new Process
            {
                StartInfo =
                    {
                        FileName = enginePath,    
                        UseShellExecute = false,
                    }
            };


p.StartInfo.UserName = "Administrator";
p.StartInfo.Password = password;

p.Start();

2 个答案:

答案 0 :(得分:1)

为了回应安全问题,Microsoft不断增加IIS进程的隔离,使您无法(或者我没有找到可以让您...的工作)直接调用IIS应用程序域之外的任何内容。您可以构建一个可以使用WCF通道间接跨越该边界的Windows服务。该服务(配置为允许与桌面交互)可以依次启动Notepad.exe。

实现这一目标有点麻烦,我当然会有兴趣看看其他人是否有更好的答案。

答案 1 :(得分:0)

我删除了下面的行,它突然开始工作了。我无法解释如何在IIS7帐户下运行exe,但它正在运行。

p.StartInfo.UserName = "Administrator";
p.StartInfo.Password = password;