最初,我使用 RDP 连接到服务器,当我尝试使用 VNC 查看器连接到同一台服务器时,RDP 连接断开。我在远程服务器上安装了 tigervnc。我尝试使用 TightVNC 进行同样的操作,RDP 连接仍然处于活动状态。请告诉我为什么 RDP 连接断开以及 TightVNC 如何保持 RDP 会话处于活动状态。如果可能的话,请提供代码片段,或者至少为我提供可以进一步帮助我的方向,请告诉我,而且我以前从未从事过这类项目,所以我没有足够的知识。任何帮助都会有很大帮助。
答案1
我正在尝试在 TigerVNC 代码库中查找负责的代码,但我怀疑(这基本上得到了其他多个超级用户和其他博客文章的证实)当作为服务启动时,而不是登录后的进程,vnc 服务器利用了 termrv.dll
因此,当您连接第二个会话(在本例中为 RDP)时,除非您在获得许可的终端服务器上,否则不允许进行第二个 RDP 会话,因此第一个会话将被终止。
您可能可以通过通过 RDP 连接后启动 VNC 服务器而不是将其作为 Windows 服务运行来解决此问题,但在这种情况下您将无法通过 VNC 与 UAC 交互。
或者RDP 包装器可能会有帮助。或者还有其他方法涉及修补termsrv.dll,但我不会记录这些方法,因为它们并不完全合法。