【问题标题】:Unable to run .exe installer from ASP.NET page无法从 ASP.NET 页面运行 .exe 安装程序
【发布时间】:2011-04-17 21:32:06
【问题描述】:

我正在尝试创建一个运行 PowerShell 脚本的 ASP.NET/C# 页面,该脚本将运行一个 .exe 安装程序。 ASP.NET 页面当前在 Windows Server 2003 上的 IIS 6.0 中运行。PowerShell 脚本在 PS 命令行中可以正常工作,但是当从 ASP.NET 页面调用时,页面会挂起。没有创建任何进程,似乎服务器似乎永远挂起。我已经成功获得了运行简单 Cmdlet 或其他脚本的其他 PowerShell 脚本以从 ASP.NET 页面工作。

我已验证该网站具有脚本和执行权限,并且 ASP.NET 页面可以看到磁盘上的脚本。当我在命令行上运行脚本时,我是管理员用户,我在 ASP.NET 页面中检查了该用户,并且它以“NT AUTHORITY\NETWORK SERVICE”用户身份运行。我授予该用户执行脚本的完全权限,但没有任何更改。

我觉得问题是 1. 我在 Windows 中仍然是新手的用户权限。 2. 提示执行我没有回答的脚本,但是从 ASP.NET 页面运行时不显示 Windows 或提示(从命令行运行脚本时会显示安装程序)。

【问题讨论】:

  • 我已经看到以这种方式运行 powershell 脚本无法正确加载环境变量的问题,因此 powershell 可能不知道要使用哪些模块。但是,我已经很久没有这样做了。如果没有产生任何进程,那可能不是问题。与任何事情一样,从小处着手并开始增加复杂性,直到它“崩溃”。

标签: c# asp.net windows iis powershell


【解决方案1】:

你可以做些什么来解决这个问题:

  • 重新配置您的应用程序池以在域帐户而不是“网络服务”下运行
  • 在运行您的页面时,模拟应用程序池的身份并使用该帐户运行可执行文件。查看如何做到这一点的示例here

【讨论】:

  • 感谢您提供快速、简洁和正确的解决方案!我将 IIS 作为本地系统运行以进行测试,它成功了! Windows 给出了一个很大的警告,请不要这样做,因此在您实际将其授予用户之前,请创建一个仅具有您所需权限的新用户!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-15
  • 1970-01-01
相关资源
最近更新 更多