Internet Explorer 11 has issues with ASP.NET 4.0

A intranet web application that I administrate suddenly was not working. From only Internet Explorer 11 the Report Viewer would never finishing loading and the rendered menu control had arrows in it. Switch to compatibility mode and everything worked the same. Now none of my code is browser specific and I don’t look at the User Agent either. Does ASP.NET do this silently in the background? Here were my workarounds.

First, the easy menu fix. For some reason the menu anchors are assigned the popout class in IE11 which adds the background image. In the menu control properties I had to set both the DynamicEnablePopOutImage and StaticEnableDefaultPopOutImage to false.

Now the more complicated Report Viewer not loading. From the developer tools in IE11 I observed the network as the page loaded. One request was returning an Internal Server Error 500. Here is the URL /Reserved.ReportViewerWebControl.axd?Culture=1033&CultureOverrides=True&UICulture=1033&UICultureOverrides=True&ReportStack=1&ControlID=74c7b63c7c1d41de9ea71be3304573f0&Mode=true&OpType=ReportImage&ResourceStreamID=Blank.gif which returns a “missing URL parameter: IterationId”. This is apparently a known bug that non-IE browsers were encountering in 2010. I checked and I got the same result in Chrome; it just doesn’t lock up and still renders the report where as IE11 fails. Using the workaround from https://connect.microsoft.com/VisualStudio/feedback/details/556989/ I modified the global.asax file and this stopped the server side error.

Are there other issues? While this is mostly for me if you would like some more info or pictures just reply below.

5 Comments

  1. Jorge Torreblanca

    Hello Reuben I have the exact same issue in my asp.net application, I followed the link you provied but the link seams to be death, Can you help me with the modifications in the global.asax? please

    Thanks in advance,

    Jorge Torreblanca

    • Here is the relevant lines from my Global.asax file:
      Sub Application_BeginRequest(ByVal sender As Object, ByVal e As EventArgs)
      Dim application As HttpApplication = DirectCast(sender, HttpApplication)
      If application Is Nothing Then
      Return
      End If
      Dim request As HttpRequest = application.Request
      If request.Path.EndsWith("Reserved.ReportViewerWebControl.axd") AndAlso Not request.QueryString("ResourceStreamID") Is Nothing AndAlso request.QueryString("ResourceStreamID").ToLower().Contains("blank.gif") Then
      Response.Redirect(request.Path.Substring(0, request.Path.LastIndexOf("/")) + "/IMAGES/ssrsblank.gif")
      End If

      End Sub
      Save a copy of the blank image to /IMAGES/ directory or change the path in the code to your files location. You will likely need to modify the code but hopefully this helps.

      Reuben

      • Neeraj

        Dear Reuben,

        Can you please send me this code of global.asax in C#?

        It will be very kind of you.

        Thanks

        • While I do not know C# well enough. After a little bit a googling this untested code should help.
          void Application_BeginRequest(object sender, EventArgs e)
          {
          HttpApplication application = sender as HttpApplication;
          if (application == null && sender != null)
          {
          return;
          }
          HttpRequest request = application.Request;
          if (request.Path.EndsWith("Reserved.ReportViewerWebControl.axd") && !request.QueryString("ResourceStreamID") == null && request.QueryString("ResourceStreamID").ToLower().Contains("blank.gif"))
          {
          Response.Redirect(request.Path.Substring(0, request.Path.LastIndexOf("/")) + "/IMAGES/ssrsblank.gif")
          }
          }

          • Neeraj

            Thanks a lot sir,

            it is very kind of you.

Leave a Reply

Your email address will not be published. Required fields are marked *