Asp.net ignora a tag IE7 de modo de compatibilidade em web.config
-
05-07-2019 - |
Pergunta
Eu tenho a seção a seguir no meu arquivo web.config
<system.webServer>
<!-- For now..... lets be safe and put IE8 in IE7 compatibility mode-->
<httpProtocol>
<customHeaders>
<clear />
<add name="X-UA-Compatible" value="IE=EmulateIE7" />
</customHeaders>
</httpProtocol>
</system.webServer>
mas o
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7"/>
não está presente no cabeçalho das páginas quando elas são renderizadas no meu site. Eu segui o conselho neste post APP ASP.NET - Defina o modo IE7 -Compatibilidade? Mas não parece estar funcionando como esperado usando o IE8 e o IIS6. Alguma dica?
Solução
Acontece que o problema era que estou usando Iis6. Iis6 olha para o <system.web>
seção de web.config em vez do <system.webServer>
Seção (que é usada pelo IIS7, a menos que esteja em execução no modo de compatibilidade). Para renderizar essa meta tag em todas as páginas do seu site ao executar o IIS6, acredito que a melhor opção é adicioná -la à sua página principal. Acabei adicionando o seguinte bloco de código ao evento Onprender da minha página Masterpage:
Page.Header.Controls.AddAt(0, new HtmlMeta { HttpEquiv = "X-UA-Compatible", Content = "IE=EmulateIE7" });
A razão pela qual usei addat em vez de acrescentar simples é porque a meta tag compatível com X-UA aparentemente deve ser a primeira coisa no cabeçalho da página para que ela seja respeitada.
Espero que isso ajude alguém no mesmo barco!