我在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位,但这也不起作用。有想法吗?
答案 0 :(得分:0)
我将其放在此处以供将来参考。事实证明,由于我下载了exe文件,因此系统提示您“确认”运行可执行文件。这就是为什么它“垂悬”于用户响应。
有趣的是,它仅在我尝试使用IIS运行该进程时才发生。我编写了一个控制台应用程序对其进行测试,然后该过程就开始了。
我修复问题的方法是将WindowStyle进程更改为Normal,提示进行确认对话。弹出后,我取消选中“始终在运行前要求此文件”,从而解决了该问题。
我想知道这是否是将“ exe”引入系统的一种方法,因此它甚至不要求确认。