我们有一个 .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 运行。