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

本文关键字:执行 EXE 文件 2008 Windows 何使用 ASP NET | 更新日期: 2023-09-27 17:50:16

如何在Windows 2008上使用ASP执行EXE文件。NET和IIS7?我试图运行下面的代码,但它似乎不工作。代码执行没有任何错误,但我没有在进程列表中看到记事本。如果我使用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();

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

为了应对安全问题,微软不断增加IIS进程的隔离,这样你就不能(或者我还没有找到一个允许你…的工作)直接调用IIS应用程序域外的任何东西。您可以构建一个Windows服务,它可以使用WCF通道间接地跨越该边界。该服务(配置为允许与桌面交互)可以反过来启动您的Notepad.exe。

这是一个有点拼凑的实现,我当然有兴趣看看是否有人有更好的答案。

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

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