【发布时间】:2016-05-04 20:41:59
【问题描述】:
C# 代码使用 Process.Start 运行在运行代码的同一台 PC 上本地保存的 exe。在 Visual Studio 中,这可以正常工作,调用 exe 并弹出 cmd 窗口。 exe 完成后,控制权将传递回 C# 调用应用程序。但是,一旦将 Web 应用程序发布到本地 IIS,将应用程序池标识设置为自定义帐户,这将不再有效。该 exe 在任务管理器中可作为正在运行的进程查看,但不会弹出 cmd 窗口以向用户指示它正在运行。 try/catch 块没有捕获任何错误。应用程序池标识确实有权运行 exe。我如何确保 cmd 窗口在 IIS 中对用户可见,就像在 Visual Studio 中一样?
【问题讨论】:
-
EXE 是否以登录 Web 服务器的用户身份运行?
-
iis 应用程序池在具有管理员访问权限的自定义用户帐户下运行。正如建议的那样,我还测试了使用同一用户登录 PC 的情况,不幸的是,同样的问题仍然存在。此用户确实有权运行该 exe。
-
但是 EXE 是否做它需要做的事情?为什么需要看到弹出的CMD窗口? IIS 进程不是交互式进程。