Process.Start 挂起,未启动进程
Process.Start Hanging, Not Starting Process
我在 .net framework 4.7.1 中编写的 IIS 中有一个 api 运行ning 需要启动控制台应用程序,但是当我调用 Process.Start(@"\boxName\d$\moreFoldersHere\FileName.exe")
时,它挂起执行,并且控制台应用程序不启动。我已经验证站点所在的应用程序池 运行ning 对包含 exe 的目录和 exe 本身具有完全权限,并且我已将服务帐户设置为管理员,但没有成功。我 运行 安装应用程序没有问题,但即使我将应用程序池设置为 运行 作为我自己,行为也没有改变。
纯粹为了上下文...... api 需要触发一个可能需要不合理的时间才能完成的过程。显然我不希望 api 响应等待它,所以我不想等待过程的结果;我只想即发即弃。我也不希望 iis 清理在“没有 activity”一段时间后将其杀死,并且我可能需要在同一个盒子上同时执行同一进程的多个实例。
由于它是一个控制台应用程序,您的问题可能是需要读取输出。参见 this answer。
我找到了答案...在IIS中,在应用程序池中,LoadUserProfile需要设置为True。
我不确定为什么它默认为 False,但现在一切正常。
我在 .net framework 4.7.1 中编写的 IIS 中有一个 api 运行ning 需要启动控制台应用程序,但是当我调用 Process.Start(@"\boxName\d$\moreFoldersHere\FileName.exe")
时,它挂起执行,并且控制台应用程序不启动。我已经验证站点所在的应用程序池 运行ning 对包含 exe 的目录和 exe 本身具有完全权限,并且我已将服务帐户设置为管理员,但没有成功。我 运行 安装应用程序没有问题,但即使我将应用程序池设置为 运行 作为我自己,行为也没有改变。
纯粹为了上下文...... api 需要触发一个可能需要不合理的时间才能完成的过程。显然我不希望 api 响应等待它,所以我不想等待过程的结果;我只想即发即弃。我也不希望 iis 清理在“没有 activity”一段时间后将其杀死,并且我可能需要在同一个盒子上同时执行同一进程的多个实例。
由于它是一个控制台应用程序,您的问题可能是需要读取输出。参见 this answer。
我找到了答案...在IIS中,在应用程序池中,LoadUserProfile需要设置为True。
我不确定为什么它默认为 False,但现在一切正常。