Compatibility problems with Internet Explorer 10/11 and an old .net framework 1.1 website

Andrea picture Andrea · Jun 25, 2013 · Viewed 20.1k times · Source

The Scenario

I have a very old website developed in .net (framework 1.1). The site has several problems with Internet Explorer 10/11 that can be fixed using compatibility view.

The Problem

Problem is that framework 1.1 doesn't recognize Internet Explorer 10/11 as an advanced capability browser, so a lot of features (for example javascript code) are disabled when a user with Internet Explorer 10/11 accesses the website.

Microsoft released patches to fix this problem for .net framework versions >=2.0 but not for framework 1.1.

What I already tried

  1. I tried forcing IE7 Compatibility Mode in web.config or adding HTTP Header in IIS or directly inside html pages with:

    <meta http-equiv="X-UA-Compatible" content="IE=7" />
    

    but this is not a valid solution, since javascript code is still missing due to the 1.1 framework issue.

  2. The only working solution I found is manually setting Compatibility View in the browser, but some of my customers have problems activating Compatibility View since they don't have confidence with PCs.

My two cents

I know that probably the best solution would be to convert the entire project to a newer version of the framework (>=2.0), unfortunately the project is huge and its conversion would be very complex (the solution includes a lot of other projects, older classic ASP sections, Crystal Reports reports and so on...)

The real question

Is there a solution that doesn't require project conversion or manual operations from end user?

Answer

Jorge Borges picture Jorge Borges · Sep 19, 2013

edit the web.config file and in the <system.web> section add

    <browserCaps>
        <case match="IE[ /](?'version'(?'major'\d+)(?'minor'\.\d+)(?'letters'\w*))">
            browser=IE
            version=${version}
            majorversion=${major}
            minorversion=${minor}
            frames=true
            tables=true
            cookies=true
            javascript=true
    javaapplets=true
            activexcontrols=true
            ecmascriptversion=1.5
            vbscript=true
            backgroundsounds=true
            isMobileDevice="true"
            <filter match="[4-9]" with="${major}">
                ecmascriptversion=1.3
                css1=true
                css2=true
                xml=true
                <filter match="[5-9]" with="${major}">
                    w3cdomversion=1.0
                </filter>
              </filter>
              <filter match="^b" with="${letters}">
               beta=true
            </filter>                                                               
         </case></browserCaps>