Ios 如何清除缓存的用户代理

Ios 如何清除缓存的用户代理,ios,asp.net,ipad,caching,user-agent,Ios,Asp.net,Ipad,Caching,User Agent,我最初的问题是,我的网站只在一些iPhone和iPad设备上出现回发错误。该网站适用于所有台式电脑以及大多数其他手机。错误是特定于设备的,而不是特定于浏览器的。我在下面的讨论中找到了答案- 这些讨论的要点是- “NET framework缓存用户代理密钥。 用户代理缓存的默认大小为64个字符。这意味着,.NET会将用户代理字符串的前64个字符缓存为密钥。因此,如果用户的UA以相同的64个字符开头,则下次用户访问该站点时,它会映射到内存中以前存储的密钥。该网站现在的行为与此新用户代理相同 在大

我最初的问题是,我的网站只在一些iPhone和iPad设备上出现回发错误。该网站适用于所有台式电脑以及大多数其他手机。错误是特定于设备的,而不是特定于浏览器的。我在下面的讨论中找到了答案-

这些讨论的要点是-

“NET framework缓存用户代理密钥。 用户代理缓存的默认大小为64个字符。这意味着,.NET会将用户代理字符串的前64个字符缓存为密钥。因此,如果用户的UA以相同的64个字符开头,则下次用户访问该站点时,它会映射到内存中以前存储的密钥。该网站现在的行为与此新用户代理相同

在大多数情况下,这不是一个问题,但偶尔会弹出一个看起来像Safari但实际上不是的用户代理,并且该代理未正确解析(Mozilla 0.0没有任何功能),但映射仍存储在缓存中,这意味着所有具有相同64个字符前缀的用户代理字符串(恰好与许多普通Safaris完全相同)现在也被错误地映射,直到缓存项过期。”

添加用户代理长度为256的browserCaps解决了某些设备的这一问题,但对于在ipad/iphone上使用chrome和safari的设备则不然


有没有办法清除这些缓存的用户代理?清除两个浏览器上的浏览器缓存似乎都不起作用。

在联机进行一些挖掘之后,我找到了一种清除缓存的方法-

资料来源:

对App_Browsers目录中的.browser文件所做的更改将使缓存失效,下一个请求将导致应用程序重新编译

但是,如果对中的.browser文件进行了更改 %SystemRoot%\Microsoft.NET\Framework\version\CONFIG\Browsers目录, 必须使用%SystemRoot%\Microsoft.NET\Framework\version\aspnet\u regbrowsers.exe工具手动重新编译应用程序, 或者,必须使用BrowserCapabilitiesCodeGenerator类以编程方式重新编译它

它没有指定您应该做什么更改,但我假设任何外部更改都会迫使它重新编译。我还没有对此进行测试,只是想在这里发布,以防有人尝试过