Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

doPostback failing in IE 11+ Windows 8.1

I am getting blank page in IE 11 in Windows 8.1 Preview.After Inspecting the page I assumed that following code might be the culprit,since after these line there is not further line displayed debugger window, So code is breaking after this line.

IE 11

<!-- <form name="aspnetForm" method="post" action="Register" id="aspnetForm">
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKMTkwNDQ3O

I tried the same page in Chrome Version 29.0.1547.57 m in Windows 8.1 Preview It is working fine there and I get following code.

CHROME

<script type="text/javascript">
//<![CDATA[
var theForm = document.forms['aspnetForm'];
if (!theForm) {
theForm = document.aspnetForm;
}
function __doPostBack(eventTarget, eventArgument) {
if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
    theForm.__EVENTTARGET.value = eventTarget;
    theForm.__EVENTARGUMENT.value = eventArgument;
    theForm.submit();
}
}
//]]>
</script>

-->

like image 992
Vikram Ranabhatt Avatar asked Aug 28 '13 10:08

Vikram Ranabhatt


2 Answers

We have created a new "ie11.browser" file in C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\Browsers and now ASP.NET is working correctly. After creating the file we run "aspnet_regbrowsers -i" and restarted IIS. We simply copied the capabilities of IE6-9. We do not know if this is accurate, but ASP.NET is now working with Explorer 11 running on Windows 8.1 Our ie11.browser file looks like this:

<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>
like image 111
Sistemas-infoe Avatar answered Sep 19 '22 12:09

Sistemas-infoe


I've experienced similar issue and would like to share my findings and how I've resolve it. Straight to the problem: The .NET framework 4.0 doesn't recognize Internet Explorer 11 browser properly. This could be verifyied on a simple web site and a page displaying the browser information from the request by calling:

Request.Browser.Browser

Request.Browser.Version

The result without any patches is: Mozilla 0.0 Once applied the patch mentioned on the following article the browser details become: IE 11.0 However this approach is working correctly on a website that has no custom .browser files. I found that if you have even a single empty file in the system app_browsers folder in your site then the browser and the version become wrong again namely Mozilla 0.0 (although the patch for the .NET 4.0 has been already installed). Digging more in to the issue I managed to workaround this unwanted behavior by including the code provided in the previous post by Sistemas-infoe into a .browser file and put it into the website's app_browsers folder. I would like to clarify that the issue is happening only with .NET 4.0, while with .NET 4.5 the browser and its version are detected correctly.

I hope this helps.

Best Regards, Mihail

like image 26
user2919107 Avatar answered Sep 19 '22 12:09

user2919107