c# - .net 请求浏览器版本不一致

标签 c# .net google-chrome httpwebrequest

我创建了一个空的 c# 网站,其中只有一个页面,其中包含 Request.Browser.Version 和 UserAgent 输出。然后使用“User-Agent Switcher”Chrome 扩展程序使用不同的 Chrome 版本进行访问。

有时,虽然 Request.UserAgent 是正确的,但 Request.Browser.Version 似乎返回错误的值:

“Mozilla/5.0(Windows NT 6.1;WOW64)AppleWebKit/537.36(KHTML,如 Gecko)Chrome/41.0.2272.16 Safari/537.36”返回 Request.Browser.Version:39

“Mozilla/5.0(Windows NT 6.1;WOW64)AppleWebKit/537.36(KHTML,如 Gecko)Chrome/39.0.2272.16 Safari/537.36”返回 Request.Browser.Version:41

最佳答案

所以,是的,.net 4.5 通过前 64 个字符来缓存用户代理。这只是在版本号之前获取它们。因此,使用相同浏览器但版本不同的下一个用户将得到错误的浏览器版本,依此类推。

要解决这个问题,只需更改 :browserCaps userAgentCacheKeyLength="...",如下所示: .Net 4.0 website cannot identify some AppleWebKit based browsers

这个愚蠢的微软错误怎么没有上头条呢?

关于c# - .net 请求浏览器版本不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28213642/

相关文章:

c# - 如何通过策略覆盖以编程方式将代码 checkin TFS 中?

html - 为什么 Chrome 画两条线而 Firefox 显示一条线?

javascript - Node webkit后退/前进按钮状态检测

html - 如何在视频标签中显示音量控制?

c# - Visual C# 项缺少操作 Pane 控件

c# - 将 SafeHandles 从非托管编码到托管

c# - Google 应用程序引擎 ASP.net

c# - 是否有更简单的方法来初始化 List<KeyValuePair<T, U>>,如 Dictionary<T, U>?

c# - Xamarin RestSharp POST 方法抛出请求超时错误和名称解析错误

c# - url 字符串中的斜杠 (c#)