ASP.NET忽略Web.config中的IE7兼容模式标记

Chr*_*uts 4 c# asp.net cross-browser internet-explorer-8

我的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>
Run Code Online (Sandbox Code Playgroud)

但是

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7"/>
Run Code Online (Sandbox Code Playgroud)

在我的网站上呈现页面的标题中不存在.我按照这篇文章中的建议ASP.NET应用程序 - 设置IE7兼容模式?但它似乎没有按预期使用IE8和IIS6.任何提示?

Chr*_*uts 14

原来问题是我正在使用IIS6.IIS6查看<system.web>Web.config 的部分而不是<system.webServer>部分(IIS7使用该部分,除非它以兼容模式运行).要在运行IIS6时在网站的每个页面上呈现此元标记,我相信最好的选择是将其添加到您的主页.我最后将以下代码块添加到我的MasterPage的OnPreRender事件中:

Page.Header.Controls.AddAt(0, new HtmlMeta { HttpEquiv = "X-UA-Compatible", Content = "IE=EmulateIE7" });
Run Code Online (Sandbox Code Playgroud)

我之所以使用AddAt而不仅仅是普通的Add是因为X-UA-Compatible元标记显然必须是页眉中的第一个才能被尊重.

希望这可以帮助同一条船上的人!