ASP.NET Internet Explorer 11在某些服务器上不显示

时间:2015-11-12 12:41:30

标签: asp.net internet-explorer-11

我们有一个应用程序(ASP.NET)在IE8上一直没有问题。应用程序在两台服务器上运行,一台主服务器和一台测试服务器。由于应用程序已稳定一段时间,因此两台服务器上的代码目前完全相同。

我们公司目前正在测试迁移到IE11。我们注意到在生产服务器上,IE11中没有显示某些页面。相反,它们会显示“此页面无法显示”的消息。但是,当我们指向测试服务器时,所有页面都正确显示。

我应该查看服务器,客户端或全局IE设置上的哪些可能的配置问题,以确定导致兼容性问题的原因?

1 个答案:

答案 0 :(得分:2)

我将在这里猜测:生产服务器位于开放的互联网上,测试服务器隐藏在公司网络中。是吗?

如果是这种情况,则问题可能出在兼容模式(或缺少它)和浏览器设置上。

IE有一个配置设置(默认为打开),它告诉它对本地网络中的站点使用IE7兼容模式。

我的猜测是,由于您的网站在IE8中工作正常,它在IE7兼容模式下也能正常工作,因此可以在您本地网络中的测试服务器上正常工作。

但是,您的实时服务器位于开放的Internet上,因此IE不使用该配置设置,并尝试以IE11标准模式呈现页面。由于您的网站是在IE8中编写的,因此它可能存在错误或问题导致它在IE11这样的新浏览器中呈现错误,这就是您所看到的。

如果诊断正确,那么您有两种选择:

  1. 修复错误,并将网站设置为使用IE11标准模式。

  2. 保留错误并将网站设置为使用兼容模式。

  3. 在任何一种情况下,您都希望使用X-UA-Compatible元标记或http标头。

    在元标记表单中,如下所示:

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

    ...将其设置为IE8兼容模式。

    要将其设置为IE11模式,请在上面的行中使用IE=edge代替IE-8

    此行需要在您网站的每个网页上添加到HTML代码的<head>部分。它也可以添加为http标头。如果你不能改变html代码,这可能是一个更好的选择,但是如何做的具体细节将取决于你的网络服务器,所以如果你想采取这条路线,我会让你自己研究。

    请注意,将其设置为使用兼容模式显然是更快的选项,因为您不必对代码进行任何其他更改。但请注意,导致它在IE11中断的错误也会在其他浏览器中破坏它,包括Microsoft的Edge浏览器,它是Windows 10中IE的替代品。换句话说,你将拥有迟早要修复这些错误。