Web API无法启动exe进程C#

时间:2018-11-04 11:02:24

标签: c# process windows-server-2012-r2

我在Windows Server 2012 r2中托管了一个Web API。在启动时,此api使用以下代码段启动第三方exe文件:

_service = new Process()
            {
                StartInfo = new ProcessStartInfo
                {
                    FileName = "file.exe",
                    Arguments = "-C config.xml",
                    WindowStyle = ProcessWindowStyle.Hidden,
                    LoadUserProfile = true,
                    WorkingDirectory = "C:\TestFolder",
                    CreateNoWindow = true
                }
            };

_service.Start()

它在我的本地计算机上运行良好,但是在将其部署到服务器上后挂起。我尝试为应用程序池设置Load User Profile = true,但这无济于事。还尝试将应用程序池设置为32位,但这也不起作用。有想法吗?

1 个答案:

答案 0 :(得分:0)

我将其放在此处以供将来参考。事实证明,由于我下载了exe文件,因此系统提示您“确认”运行可执行文件。这就是为什么它“垂悬”于用户响应。

有趣的是,它仅在我尝试使用IIS运行该进程时才发生。我编写了一个控制台应用程序对其进行测试,然后该过程就开始了。

我修复问题的方法是将WindowStyle进程更改为Normal,提示进行确认对话。弹出后,我取消选中“始终在运行前要求此文件”,从而解决了该问题。

我想知道这是否是将“ exe”引入系统的一种方法,因此它甚至不要求确认。