从 IIS7 启动进程

从 IIS7 启动进程

我有一台运行 IIS7 的 Windows 2008 机器。该服务器托管一个 ASP.NET 应用程序,该应用程序绝对需要启动一个外部进程 - 位于同一台机器上的可执行文件。

此设置在 ASP.NET 开发服务器中运行良好,但涉及 IIS 时会彻底失败。我尝试了所有方法:修改机器配置文件,更改应用程序池的身份,修改文件和文件夹权限,更改服务的“登录”选项卡中的设置...什么都不起作用。

无论我尝试运行哪个可执行文件,都无济于事。甚至“notepad.exe”也会失败。

我可能忽略了一些东西,因为这么简单的任务不应该这么难。是的,我知道我所做的事情的安全隐患,但在这种情况下,没有其他办法。

提前致谢。

答案1

检查站点上的应用程序池标识和匿名用户身份。对于站点,如果您将匿名用户设置为使用应用程序池的身份,那么只要您不在不受信任的站点之间共享应用程序池,事情就会变得更清晰。使用您的管理用户进行测试,并确保 UAC 不会与您发生冲突。测试后,请务必重新设置为自定义用户。

另一个可能的问题是如何从 IIS 加载用户配置文件。在应用程序池的高级设置中,尝试“加载用户配置文件”。

另一个可以尝试的方法是通过 cmd.exe 运行该应用程序。例如:

var p = new Process();
string command = "notepad.exe";
p.StartInfo.FileName = "cmd.exe";
p.StartInfo.WorkingDirectory = "valid working directory";
p.StartInfo.Arguments = String.Format("/C {0}", command);

相关内容