-1

PHP 中有没有办法查明是否有人从 Windows 终端服务/Citrix/RDP 远程桌面环境中连接到我的网站?

当(并且仅当)有人通过远程桌面连接使用 IE9 连接到它时,我的 Web 应用程序会遇到一些严重的性能问题。我知道我应该寻找这些问题的原因并相信我。但是我发现由于某种原因切换到 IE8 兼容模式可以解决问题。所以暂时我想检测是否有人通过远程桌面连接使用 IE9 连接到我的网站,这样我就可以强制他们使用 IE8 兼容模式。

任何关于为什么我的 Web 应用程序在远程桌面 IE9 中速度如此之慢的任何想法也是受欢迎的。我的 Web 应用程序是基于 PHP/jQuery/jQueryUI/jqGrid/mySQL 构建的。

4

2 回答 2

3

PHP、HTTP、HTML、DOM 甚至浏览器 DOM 扩展中没有任何东西可以知道您是否在终端服务会话下运行。

唯一的方法是使用 ActiveX 控件或 .NET 小程序直接查询 Win32。在 C#/.NET 中,您可以使用System.Windows.Forms.SystemInformation.TerminalServerSession,然后将该信息返回到服务器,但您只能在页面加载后执行此操作。

这可能是 IE9 改进的硬件加速渲染功能的问题,因为终端服务使用虚拟rdpdd显示驱动程序。尝试在终端服务器的 IE 中禁用此选项。

于 2013-04-25T19:12:07.790 回答
0

远程桌面用户使用浏览器作为主机(服务器或 citrix)应用程序内的设置。服务器管理员可以定义浏览器设置(IE 的增强安全设置)等选项 病毒扫描程序集成

以及可用的浏览器(IE 7-8-9-10)。那些浏览器在渲染中的行为不同

IE-XXX 兼容模式可由您的应用程序控制 http://msdn.microsoft.com/library/cc817574.aspx

每页:

<meta http-equiv="X-UA-Compatible" content="IE=8"/> 

即使 html 中不存在“!DOCTYPE”,页面也将始终以“IE8 标准模式”呈现

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE9"/> 

即使 html 中不存在“!DOCTYPE”,该页面也将始终以“IE9 标准模式”呈现

<meta http-equiv="X-UA-Compatible" content="IE=9"/> 

即使 html 中不存在“!DOCTYPE”,该页面也将始终以“IE9 标准模式”呈现

<meta http-equiv="X-UA-Compatible" content="IE=edge"/> 

在这种配置下,将使用 IE 渲染引擎的最高可用版本。它不关心是否使用了“!DOCTYPE”。此功能可与“IE=7”和“IE=8”相媲美。这是用来兼容最高IE版本的。

所以我认为您不需要关心 RDP 或 Citrix 主机,而是支持在正确模式下使用 IE。

于 2013-04-25T19:14:21.607 回答