在命令行上启动服务器与在应用程序内启动服务器

时间:2019-12-24 06:54:27

标签: c++ qt http server get

在命令行上启动服务器时,与之通信没有问题:

>powershell -Command "Start-Process '.\agent.exe' -Verb runAs"

Launch server by command line


但是,在C ++ / Qt应用程序内部启动服务器时,服务器答复不是 所期望的:

QString agentName = "/agent.exe";
QString agentPath = QCoreApplication::applicationDirPath() + agentName;
QStringList args = QStringList();
args = QStringList({"-Command", QString("Start-Process %1 -Verb runAs").arg(agentPath)});
m_agent->start("powershell", args);

Launch server inside application

这个问题使我陷入了困境。寻找任何提示来解决它。

2 个答案:

答案 0 :(得分:0)

调查Windows Defender防火墙

只是认为这可能是原因:

  • 通过命令行启动服务器,Windows Defender防火墙允许访问网络
  • 在C ++ / Qt应用程序内部启动服务器,防火墙阻止网络访问

但是,此测试表明Windows Defender防火墙可能不是是原因:

Firewall test

答案 1 :(得分:0)

发生此问题时,我正在Qt 5.12.6中使用 Microsoft Build Tools 2015 Update 3

我安装了 Visual Studio Community 2017 ,并将其与Qt一起使用,然后问题得以解决。不知道为什么,可能是由于一些上游错误修复?