My website is broken in IE11.
We all know that HTML tags allow developer to force IE compatibility mode; in example
<meta http-equiv="X-UA-Compatible" content="IE=8, IE=9" />
worked great and solved the visualization problems for IE10.
But actually on IE11, even if Compatibility mode
is set to IE9
, User agent string
is set to default
and javascript doesn't work.
Changing manually User agent string
to IE10
solved my problems.
For shure I'm going to solve the real problems that cause website errors, but actually I need a fast, programatic way to force "User agent string" to IE10, since I can't contact every user.
Can someone help?
I also faced the same problem in my 2003 windows server with .net framework 4.0 and after a long research i found the below is helpful...
I created App_Browsers folder and put a browser file named as ie.browser and pasted the below browser definition text and it started working
<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>
Solved! Website is up just installing Dotnet framework 4.5 on server
Actually I didn't find a way to force programmatically browsers User agent string (this was the original question). But repaired website with 0 code..
Just made lot of tests and on one server I found out that website was working, on other server it wasn't.
The "good server" was a Win2012, and "bad servers" were Win2008. On Win2012 Aspnet 4.5 was running, and on Win2008 it wasn't.
I installed dotnet framework 4.5 on bad servers too, and everything started working!
If you don't want to install the entire .NET Framework 4.5, you can just update the .NET Framework 4.0 with this fix from Microsoft http://www.microsoft.com/en-us/download/confirmation.aspx?id=39257
In my case this worked perfectly.
Put the code in your WebConfig: Working in 2017-2018
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="X-UA-Compatible" value="IE=Edge" />
</customHeaders>
</httpProtocol>
</system.webServer>