从ASP.NET Web应用程序运行.exe的权限问题

时间:2012-07-18 15:28:05

标签: c# asp.net iis-7

我们有一个.exe,我们需要在网站上下订单时执行.exe。什么时候 我们在本地测试它使用IIS Express可以正常工作。当我们将它移动到IIS时,它会失败。我们假设这是一个权限错误,就好像我们将App Pool设置为以管理员身份运行,然后脚本再次运行。我们的问题是,如果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正在尝试写入Users AppData文件夹,这就是它失败的原因。它是第三方应用程序,因此我们无法更改源代码。

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

2 个答案:

答案 0 :(得分:1)

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

我们起诉ProcMon以找到程序失败的位置以及它尝试使用的文件夹是C:\ Windows \ System32 \ config \ systemprofile

答案 1 :(得分:0)

我实际上并不记得,但其中一个是100%工作(我之前有过这个问题)

请告诉我哪一个是正确的。

enter image description here

enter image description here