title: How to forcefully set IE's Compatibility Mode off from the server-side?
body: <p>In a domain-controlled environment I'm finding that the compatibility mode is triggered on certain clients (winXP/Win7, IE8/IE9) even when we are providing a X-UA tags, a !DOCTYPE definition and "IE=Edge" response headers. These clients have the "display intranet sites in compatibility view" checkbox ticked. Which is precisely what I'm trying to override.</p>
  
  <p>The following is the documentation that I've used to try understand how IE decides to actually trigger the compatibility mode.</p>
  
  <p><a href="http://msdn.microsoft.com/en-us/library/ff406036%28v=VS.85%29.aspx" rel="noreferrer">http://msdn.microsoft.com/en-us/library/ff406036%28v=VS.85%29.aspx</a></p>
  
  <p><a href="http://blogs.msdn.com/b/ie/archive/2009/02/16/just-the-facts-recap-of-compatibility-view.aspx" rel="noreferrer">http://blogs.msdn.com/b/ie/archive/2009/02/16/just-the-facts-recap-of-compatibility-view.aspx</a></p>
  
  <blockquote>
    <p><b>Site owners are <em>always</em> in control of their content.</b> Site owners can choose to use the X-UA-Compatible tag to be absolutely declarative about how they’d like their site to display and to map Standards mode pages to IE7 Standards. <em>Use of the X-UA-Compatible tag overrides Compatibility View on the client.</em></p>
  </blockquote>
  
  <p>Google for <strong>"Defining Document Compatibility"</strong>, sadly the SPAM engine doesn't let me post more than 2 urls.</p>
  
  <p>This is an <code>ASP .NET</code> web app and includes the following definitions on the master page:</p>
  
  <pre><code>&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&gt;
  &lt;head&gt;
     &lt;meta http-equiv="X-UA-Compatible" content="IE=Edge" /&gt;
  &lt;/head&gt;
  </code></pre>
  
  <p>and <code>web.config</code></p>
  
  <pre><code>&lt;system.webServer&gt;
    &lt;httpProtocol&gt;
      &lt;customHeaders&gt;
        &lt;clear /&gt;
        &lt;add name="X-UA-Compatible" value="IE=Edge" /&gt;
      &lt;/customHeaders&gt;
    &lt;/httpProtocol&gt;
  &lt;/system.webServer&gt;
  </code></pre>
  
  <p>I've used Fiddler to check that the header is indeed being injected correctly.</p>
  
  <p>My understanding is that with these settings I should be able override the "Display intranet sites in Compatibility View" browser setting. But depending on the client I've found that some of them will still trigger compatibility mode.
  It also seems to be down to the machine level rather a policy group setting, since I obtain different results even when I use with the same set of credentials on different clients.</p>
  
  <p>Disabling the Compatibility View Settings checkbox does the trick. But the actual purpose is to make sure that the app is rendered exactly the same way regardless of the client settings.</p>
  
  <p>Any thoughts and what I could be possibly missing? Is it possible at all to force IE to always render the pages without triggering Compat mode? </p>
  
  <p>thanks a million,</p>
  
  <p>Jaume</p>
  
  <p><strong>PS:</strong> the site is currently in development and is of course not in Microsoft's compatibility list, but I've also checked just in case.</p>
  
  <p>Google for <strong>"Understanding the Compatibility View List"</strong>, sadly the SPAM engine doesn't let me post more than 2 urls.</p>