Silverlight Internet explorer将不同的用户代理字符串发送到不同的站点

Silverlight Internet explorer将不同的用户代理字符串发送到不同的站点,silverlight,internet-explorer,user-agent,Silverlight,Internet Explorer,User Agent,我现在正试图用silverlight应用程序追踪一个bug。我们正在从HtmlPage.BrowserInformation类获取浏览器信息,但它似乎返回了不正确的信息。在IE9上运行时,浏览器信息显示它正在8.0版上运行。我打开Fiddler查看HTTP级别上发生了什么,下面是我从测试服务器的用户代理字符串中得到的信息(测试服务器运行我们自己的服务器软件,该软件使用WCF进行HTTP请求): 用户代理:Mozilla/4.0(兼容;MSIE 7.0;Windows NT 6.1;WOW64;T

我现在正试图用silverlight应用程序追踪一个bug。我们正在从HtmlPage.BrowserInformation类获取浏览器信息,但它似乎返回了不正确的信息。在IE9上运行时,浏览器信息显示它正在8.0版上运行。我打开Fiddler查看HTTP级别上发生了什么,下面是我从测试服务器的用户代理字符串中得到的信息(测试服务器运行我们自己的服务器软件,该软件使用WCF进行HTTP请求):

用户代理:Mozilla/4.0(兼容;MSIE 7.0;Windows NT 6.1;WOW64;Trident/5.0;SLCC2;.NET CLR 2.0.50727;.NET CLR 3.5.30729;.NET CLR 3.0.30729;Media Center PC 6.0;InfoPath.3;.NET4.0C;.NET4.0E)

以下是我转到任何其他站点时的用户代理字符串:

用户代理:Mozilla/5.0(兼容;MSIE 9.0;Windows NT 6.1;WOW64;Trident/5.0)


我不确定BrowserInformation类是如何工作的(即,它的所有信息是来自用户代理字符串还是来自其他地方)。任何关于这方面的见解都会有所帮助

从您的问题可以清楚地看出,您不是IE用户

要解决您的问题,您需要将此添加到所有页面:

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

重要的是要将其直接添加到head标记之后,如下所示:

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />


愚蠢的问题,浏览器是否设置为在该网站上以兼容模式运行?我已经看过了,但看起来不是,但我不知道有什么简单的方法可以告诉你。现在我打开命令栏,然后进入“工具”菜单,然后查看“兼容性”视图项,但它是灰色的。感谢大家指出这一点。你说得对,我不知道如何使用元标记来强制兼容模式。我们正在使用的.html文件的meta标记是IE=8,而不是edge。谢谢你的帮助,谢谢!你不是第一个感谢我这个特别决议的人。这不是一件显而易见的事情来了解你自己。此外,我们都应该感谢微软,他们正在尽一切努力让我们忙于这种无聊的事情。有关IE的用户代理字符串(及其变化)的更多信息,请参阅。到目前为止,这篇文章已经更新,以反映版本之间的差异。虽然不能保证它会继续更新,但它是一个很好的历史参考资源。(这也很好地说明了为什么浏览器检测不是一种好的做法。)