问题
This is the user agent for IE 11 on Windows 8.1 (Preview)
Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; Touch; rv:11.0) like Gecko
I am looking for a .browser file for either the App_Browsers folder in my application or c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\Browsers to properly detect IE11.
Since the user agent changed from containing "MSIE" such as this IE10 user agent
Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0; Touch)
I have tried about 100 variations with no success.
回答1:
I created a file containing
<browsers>
<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" />
<capability name="layoutEngineVersion" value="${layoutVersion}" />
<capability name="extra" value="${extra}" />
<capability name="isColor" value="true" />
<capability name="letters" value="${letters}" />
<capability name="majorversion" value="${major}" />
<capability name="minorversion" value="${minor}" />
<capability name="screenBitDepth" value="8" />
<capability name="type" value="IE${major}" />
<capability name="version" value="${version}" />
</capabilities>
</browser>
<!-- Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11,0) like Gecko -->
<browser id="IE110" parentID="IE11">
<identification>
<capability name="majorversion" match="11" />
</identification>
<capabilities>
<capability name="ecmascriptversion" value="3.0" />
<capability name="jscriptversion" value="5.6" />
<capability name="javascript" value="true" />
<capability name="javascriptversion" value="1.5" />
<capability name="msdomversion" value="${majorversion}.${minorversion}" />
<capability name="w3cdomversion" value="1.0" />
<capability name="ExchangeOmaSupported" value="true" />
<capability name="activexcontrols" value="true" />
<capability name="backgroundsounds" value="true" />
<capability name="cookies" value="true" />
<capability name="frames" value="true" />
<capability name="javaapplets" value="true" />
<capability name="supportsCallback" value="true" />
<capability name="supportsFileUpload" value="true" />
<capability name="supportsMultilineTextBoxDisplay" value="true" />
<capability name="supportsMaintainScrollPositionOnPostback" value="true" />
<capability name="supportsVCard" value="true" />
<capability name="supportsXmlHttp" value="true" />
<capability name="tables" value="true" />
<capability name="supportsAccessKeyAttribute" value="true" />
<capability name="tagwriter" value="System.Web.UI.HtmlTextWriter" />
<capability name="vbscript" value="true" />
</capabilities>
</browser>
</browsers>
and it worked for me. Based on answer by Sistemas-infoe on this question: doPostback failing in IE 11+ Windows 8.1
回答2:
.NET Framework 4.5.1 update adds new browser definition files: http://www.microsoft.com/en-us/download/details.aspx?id=40773
回答3:
I am finding the same problem with IE11 on IIS.
There was an official MS patch for IE10, but, they seem to have only fixed it for that explicit version, rather than for future (and, kind of expected) revisions of the browser.
Scott Hanselman provided a local project for IE10, and perhaps he will update it for IE11.
Here is a link to the patch for IE10 in .NET/IIS
The NuGet package for IE 10
Regarding the comment about not needing to use the .browsers file, I totally agree, however, this issue is (I believe) an issue with IIS/.NET 4
Cheers
Andy
来源:https://stackoverflow.com/questions/17417420/app-browsers-definition-file-for-ie-11