简单来说:
我的公司目前正在开发一个供我们的一组客户使用的小型 asp.net 网站。该站点无法在我们的生产环境中仅加载 IE8,而是显示一般的 page-not-found 错误(不是来自我们服务器的 404)。
细节:
该网站部署在两台服务器上,QA 和 Prod。两台服务器都是从同一个镜像克隆的,并且应该具有相同的设置。它们具有相同的硬件和软件。两台服务器都在我们公司的防火墙之外,可以从互联网以及我们公司的内部网访问。网站本身部署在同一构建的两台服务器上;唯一的区别是每个站点的 web.config 文件中的一行将 Prod 上的站点指向生产数据库,将 QA 上的站点指向测试数据库(其数据定期从 Prod 克隆)。我将 QA 服务器上的站点称为site.qa.com,将 Prod 服务器上的站点称为site.prod.com。
当在任何浏览器中从公司内部网访问site.prod.com时,该站点会加载并正常运行(这包括在 IE8 中访问它)。当从 Internet 访问site.prod.com时(我们的最终用户将访问它),site.prod.com在 Chrome、Firefox、Safari 和 IE9 中加载并正常运行。当我们尝试在 IE8 中访问它时,IE8 会返回一个 page-not-found 错误,就像访问site.prod.com的计算机与 Internet 断开连接一样。
site.qa.com可以在我们的内部网和互联网上通过每个浏览器(包括 IE8)访问。
我还应该注意,从 Internet 和我们的 Intranet 访问site.prod.com使用相同的 URL,并且应该通过相同的安全检查;访问site.prod.com或site.qa.com没有特殊的仅限 Intranet 方式。
有关服务器的更多信息:
QA 和 Prod 都在运行 Windows Server 2008 R2 Standard,Service Pack 1。我们通过 IIS 7.5 运行网站,两台服务器之间的 IIS 设置相同(导出它们的配置文件并比较显示它们匹配到行)。
结束:
在这一点上,我们很难理解为什么我们的网站无法在 IE8 中加载。放弃对 IE8 的支持不是我们的选择,克隆 QA 并将该克隆用作 Prod 是我们正在考虑的临时解决方案,但不会回答我们的核心问题,即:为什么 IE8 会完全无法加载生产站点,只有生产站点,只有在从 Internet 访问时?
编辑: 该网站神奇地开始工作(它看起来是这些错误之一)。我将在此处发布我们能够发现的有关此行为及其修复方式的任何内容,以防其他人遇到类似问题。