【问题标题】:Why is browser detection on server side inconsistent?为什么服务器端的浏览器检测不一致?
【发布时间】:2011-05-26 15:07:42
【问题描述】:

我在 IIS 上部署了一个 ASP.net Web 应用程序。当我使用 IE8 本地 访问它时,浏览器通过request.browser

被正确检测为 IE8

如果我使用 IE8 访问 same Web 应用程序,但这次是从另一台机器远程访问,request.browser 会报告浏览器为 IE7 ?!

我一直在用这个旋转我的车轮,你知道为什么会发生这种情况或如何纠正它吗?

编辑: 不,兼容性模式没有在任何实例上打开。我仔细检查了。

以下是两种情况下上报给服务器的字符串:

远程访问:

Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)

本地访问:

Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; .NET4.0E; OfficeLiveConnector.1.3; OfficeLivePatch.0.0)

【问题讨论】:

  • 可能是远程机器上的IE打开了兼容模式?
  • 哈! + 用于破解谜团。难道我们都只是喜欢 IE。

标签: asp.net iis browser


【解决方案1】:

是的,原来是兼容模式(感谢 Šime Vidas)。

除非我没有明确打开它,而且 IE 并没有让我明白这一点。

默认情况下,安装全新的 IE8 副本后,它具有选项Display intranet sites in Compatibility View开启。因为我在我的网络中进行测试,所以这个选项正在生效。偷偷摸摸的……

在工具 --> 兼容性视图设置中,取消选中“在兼容性视图中显示 Intranet 站点”

【讨论】:

  • 有趣的是 localhost 没有包含在 Intranet 中,或者本地计算机 IE 的复选框已经取消选中?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-03-23
  • 2011-09-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-12
相关资源
最近更新 更多