4

我们有一个 .exe 文件,我们需要在网站上下订单时执行该文件。当我们在本地测试它时,它使用 IIS Express 可以正常工作。当我们将其移至 IIS 时,它会失败。我们假设这是一个权限错误,就好像我们将应用程序池设置为以管理员身份运行然后脚本再次运行一样。我们的问题是,当 App Pool 是 ApplicationIdentity 时,我们如何以管理员身份执行 .exe?我们正在使用以下代码:

var process = new Process
                          {
                              StartInfo = new ProcessStartInfo
                                              {
                                                  FileName = executablePath,
                                                  Arguments = argumentList,
                                                  Domain = domain,
                                                  UserName = userName,
                                                  Password = securePassword,
                                                  UseShellExecute = false,
                                                  LoadUserProfile = true
                                              }
                          };

        process.Start();
        process.WaitForExit();
        process.Close();

.exe 正在尝试写入用户 AppData 文件夹,这就是它失败的原因。它是第 3 方应用程序,因此我们无法更改源代码。

编辑:也澄清一下,当我们在 procmon 中指定用户名和密码时,它似乎仍然从 ISUR 运行。

4

2 回答 2

1

我们通过在 IIS AppPool 上启用用户配置文件并在其尝试写入的文件夹上设置 IIS 用户的权限来解决此问题。

我们起诉 ProcMon 以查找程序失败的位置以及它试图写入的文件夹是 C:\Windows\System32\config\systemprofile

于 2012-07-25T15:37:02.093 回答
0

我实际上不记得了,但是其中一个正在 100% 工作(我之前遇到过这个问题)

让我知道其中一个是正确的。

在此处输入图像描述

在此处输入图像描述

于 2012-07-18T15:34:09.590 回答