我看到你在IE 11中回答了有关用户代理字符串的问题,我对此进行了跟进。
我更愿意让我的公司升级到最新版本的.net 4.5和最新的Windows服务器操作系统,但这似乎不是一个选择。
APP_Browser文件夹和mozilla.browser文件中已有大约十几个文件似乎与您建议的修补程序冲突。
当我单独使用您的代码放置文件时 - 一切正常。当我包含这个mozilla.browser文件时,它又回到了不工作状态......
我们的mozilla.browser文件如下:
<browser id="Mozilla" parentID="Default">
<identification>
<userAgent match="Mozilla" />
<userAgent nonMatch="MME|Opera" />
</identification>
<capture>
<userAgent match="Mozilla/(?'version'(?'major'\d+)(?'minor'\.\d+)\w*)" />
<userAgent match=" (?'screenWidth'\d*)x(?'screenHeight'\d*)" />
</capture>
<capabilities>
<capability name="browser" value="Mozilla" />
<capability name="cookies" value="false" />
<capability name="defaultScreenCharactersHeight" value="40" />
<capability name="defaultScreenCharactersWidth" value="80" />
<capability name="defaultScreenPixelsHeight" value="480" />
<capability name="defaultScreenPixelsWidth" value="640" />
<capability name="inputType" value="keyboard" />
<capability name="isColor" value="true" />
<capability name="isMobileDevice" value="false" />
<capability name="majorversion" value="${major}" />
<capability name="maximumRenderedPageSize" value="300000" />
<capability name="minorversion" value="${minor}" />
<capability name="screenBitDepth" value="8" />
<capability name="screenPixelsHeight" value="${screenHeight}" />
<capability name="screenPixelsWidth" value="${screenWidth}" />
<capability name="supportsBold" value="true" />
<capability name="supportsCss" value="true" />
<capability name="supportsDivNoWrap" value="true" />
<capability name="supportsFontName" value="true" />
<capability name="supportsFontSize" value="true" />
<capability name="supportsImageSubmit" value="true" />
<capability name="supportsItalic" value="true" />
<capability name="type" value="Mozilla" />
<capability name="version" value="${version}" />
</capabilities>
</browser>
...
我确信解决方案位于父层次结构和正则表达式捕获中。想知道你是否有任何见解。
答案 0 :(得分:0)
我今天大部分时间都在努力解决这个问题并发现了一大堆不同的行为,但总结一下:
就我个人而言,到目前为止,最安全的选择是升级到.NET 4.5。
更新:事实证明我的第一点并非严格属实。您可以在App_Browsers中的.browser文件中添加一个新条目,以识别IE 11的用户代理字符串,但它仍然非常棘手,使其工作,我不确定需要哪些选项。它开始了:
<browser id="IE11" parentID="Mozilla">
<identification>
<userAgent match="Trident\/7.0; rv:(?'version'(?'major'\d+)(\.(?'minor'\d+)?)(?'letters'\w*))(?'extra'[^)]*)" />
<userAgent nonMatch="IEMobile" />
</identification>
<capture>
<userAgent match="Trident/(?'layoutVersion'\d+)" />
</capture>
<capabilities>
<capability name="browser" value="IE" />
<capability name="layoutEngine" value="Trident" />
...