如何使用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();
答案 0 :(得分:1)
为了回应安全问题,Microsoft不断增加IIS进程的隔离,使您无法(或者我没有找到可以让您...的工作)直接调用IIS应用程序域之外的任何内容。您可以构建一个可以使用WCF通道间接跨越该边界的Windows服务。该服务(配置为允许与桌面交互)可以依次启动Notepad.exe。
实现这一目标有点麻烦,我当然会有兴趣看看其他人是否有更好的答案。
答案 1 :(得分:0)
我删除了下面的行,它突然开始工作了。我无法解释如何在IIS7帐户下运行exe,但它正在运行。
p.StartInfo.UserName = "Administrator";
p.StartInfo.Password = password;