我们有一个.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运行。
答案 0 :(得分:1)
我们通过在IIS AppPool上启用用户配置文件并在其尝试写入的文件夹上为IIS用户设置权限来解决此问题。
我们起诉ProcMon以找到程序失败的位置以及它尝试使用的文件夹是C:\ Windows \ System32 \ config \ systemprofile
答案 1 :(得分:0)
我实际上并不记得,但其中一个是100%工作(我之前有过这个问题)
请告诉我哪一个是正确的。