24

IE11 is coming. I just installed the developer preview version. However, if I run some of my web application and I got the error WebForm_DoPostBackWithOptions is undefined.

The error popped up when I was playing with the autopostback DropDownList.

Moreover, it looks like there was a similar issue with IE10 before:

http://www.hanselman.com/blog/BugAndFixASPNETFailsToDetectIE10CausingDoPostBackIsUndefinedJavaScriptErrorOrMaintainFF5ScrollbarPosition.aspx

Michael
  • 8,362
  • 6
  • 61
  • 88
user2376512
  • 885
  • 1
  • 10
  • 21

9 Answers9

39

I had a similar issue with Internet Explorer 11 not being detected correctly by .NET 4.0 framework. Here's how I worked around the problem:

Installing the suggested patches didn't do the trick. After digging deeper into the issue, I found that although the http://support.microsoft.com/kb/2836939 patch is installed on the server, the browser is still recognized as Mozilla with version 0.0 on the server. After additional research I found that if you have any .browser file in your site's app_browsers folder, the version detected on the server is wrong, namely Mozilla 0.0.

To work around the issue I created a custom .browser file in the app_browsers directory with the following content:

<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>

A similar approach is suggested in the following article: doPostback failing in IE 11+ Windows 8.1

I would like to clarify that the issue is happening only with .NET 4.0. With .NET 4.5, the browser and its version are detected correctly.

Community
  • 1
  • 1
user2919107
  • 491
  • 4
  • 5
  • Welcome! This is a good answer, I just tweaked the formatting slightly to make it a bit easier to read. – ralight Oct 25 '13 at 09:29
  • 1
    This worked for me, so, unless someone can come up with something better, this is what I'll stick with. – KBKarma Nov 29 '13 at 15:55
  • 2
    Just excellent. Use this browser file and make sure to update some already existing .browser file and it'll recompile and work. – Robban Dec 09 '13 at 10:10
  • Thank you! This is a great fix! – tahdhaze09 Dec 10 '13 at 18:08
  • Very much worked for me was well! I did not have success with the other suggested approaches to resolving the doPostBack error messages. One issue with this solution comes to mind, though: is it future proof? This looks like it specifically searches for IE11. So will IE 12 generate the error messages again, requiring yet another browser file update? – Moskie Dec 20 '13 at 23:50
  • Just adding this to my ie.browser file worked. Thanks. – live-love Apr 11 '14 at 15:11
6

Finally, I found the solution, Thanks Scott Hunter's advice.

If you want to solve the IE11 issue, please install the hotfix below.

user2376512
  • 885
  • 1
  • 10
  • 21
6

I tried every patch that I've seen listed on the internet, including the ones listed here. The only thing that actually seemed to work was installing the .NET 4.5 Framework on the server.

Get it here: http://www.microsoft.com/en-us/download/details.aspx?id=30653

Hope this saves someone a few of the hours I've lost on this one.

ckozl
  • 6,751
  • 3
  • 33
  • 50
  • 1
    If your server is windows 2003, it is not possible to implement this – user2376512 Oct 03 '13 at 22:27
  • 3
    @user2376512 sorry to hear that, it might be time to upgrade, your server OS is 10 years old... It would be graduating elementary school this year and not many cars make it that long. Plus you only have security patch support for 1 year and 9 months, and that's someplace you don't want to find yourself.... – ckozl Oct 04 '13 at 01:45
  • Thanks your advice. It is yes to upgrade the server, however, we need to consider business cost and licenses fee also, I think lots of big apps or organization is still using windows 2000 or windows 2003. So some of apps still need to run on the 2000/2003 platform. – user2376512 Oct 04 '13 at 02:06
  • I tried many solutions (also the one marked as solution above) but only this one worked. Windows Server 2008 R2. Thank you. – Tillito Nov 26 '13 at 16:55
6

For anyone struggling to understand why user2919107's answer above (putting a custom .browser file for IE11 in your App_Browsers folder) doesn't work, try to touch an existing .browser file in your App_Browsers folder.

Simply creating/copying the IE11 .browser file doesn't work. You need to touch an existing .browser file so that App_Browsers contents are re-compiled and taken into account.

1

Yes, this is the same core issue, and it's fixed by the June 2013 ASP.NET hotfix. See http://blogs.msdn.com/b/ieinternals/archive/2013/09/21/internet-explorer-11-user-agent-string-ua-string-sniffing-compatibility-with-gecko-webkit.aspx

EricLaw
  • 56,563
  • 7
  • 151
  • 196
0

If you are running windows 2003 and are unable to apply any hotfix; try setting the ClientTarget property of the Page object in the Page_Init of your ASP.NET page to "uplevel".

protected void Page_Init(object sender, EventArgs e)
{
    Page.ClientTarget = "uplevel";
}
Folkert
  • 52
  • 8
0

I was also having this problem. I tried everything short of installing .NET 4.5. I was just looking for a short term solution before we upgrade to .NET 4.5. Panagiotis Poulos was correct about the new .browser file. I touched an existing .browser file and my new IE .browser file is now being recognized. Everything works again as far as I can tell.

In short, follow this guys instructions, but if you try the .browser approach, remember to touch an existing .browser file after uploading your own .browser file.

Code Maverick
  • 20,171
  • 12
  • 62
  • 114
bowserm
  • 1,046
  • 10
  • 25
0

If you downloaded IE 11 but use the original IE browser that came with Windows, the user agent of the browser is little bit different and the most upvoted answer will not work.

You just have to change this line:

<userAgent match="Trident\/7.0; rv:(?'version'(?'major'\d+)(\.(?'minor'\d+)?)(?'letters'\w*))(?'extra'[^)]*)" />

to this:

<userAgent match="Trident\/7.0;(?'someGarbage'[^'rv:']*) rv:(?'version'(?'major'\d+)(\.(?'minor'\d+)?)(?'letters'\w*))(?'extra'[^)]*)" />
Community
  • 1
  • 1
Pouki
  • 1,654
  • 12
  • 18
0

Found a temporary fix to this.

I tried applying the hotfix but I couldn't get the hotfix to install. The error was: kb2600088 does not apply, or is blocked by another condition on your computer. Probably due to .NET 4.5, I googled abit but I didn't want to uninstall .NET 4.5 so I didn't follow through.

So, to get around the original problem, start IE11 and go to developer's console by pressing F12. Under 'Emulation' tab, set document mode to '10' and under user agent string, set it to '10' as well. I believe it emulates IE 10 which works perfectly fine without having to run into this bug.

This is only a work around. Not a fix. Hope it helps those trying to get work done.

f0rfun
  • 716
  • 4
  • 14
  • 36