【发布时间】:2017-04-19 23:36:53
【问题描述】:
我们有 2 个运行 Windows Server 2012 和 ColdFusion 11 的负载平衡 Web 服务器,它们取代了运行 Windows Server 2008 和 ColdFusion 10 的服务器。在 ColdFusion 10 下我们没有问题。在 ColdFusion 11 下,页面最初加载时没有错误,但会刷新浏览器始终在 Firefox 开发人员工具中产生类似于下面的错误消息。
GET http://abc.web.def.com/CFIDE/scripts/cfform.js [HTTP/1.1 304 Not Modified 98ms]
GET http://abc.web.def.com/CFIDE/scripts/masks.js [HTTP/1.1 500 Internal Server Error 105ms]
GET http://abc.web.def.com/includes/jquery/UI/jquery-ui-1.9.2.custom/js/jquery-1.8.3.js [HTTP/1.1 304 Not Modified 102ms]
GET http://abc.web.def.com/includes/jquery/UI/jquery-ui-1.9.2.custom/js/jquery-ui-1.9.2.custom.min.js [HTTP/1.1 500 Internal Server Error 105ms]
GET http://abc.web.def.com/myFolder/mySubFolder/myApp.css [HTTP/1.1 500 Internal Server Error 105ms]
同样,这些错误不会在初始页面加载时发生 - 仅在页面刷新时才会发生,因此无法完全重新加载页面。该问题出现在两台新服务器上。我们已经比较了我们能想到的所有 IIS 和 ColdFusion 设置,但无济于事。
你知道这里发生了什么吗?
【问题讨论】:
-
如果错误仅在重新加载时发生,可能的原因可能是 cookie(会话处理)或 http-referrer。据我所知,这些是 GET 请求在第二次运行时唯一不同的部分。
-
(编辑)是的,cookie/会话相关问题也是我的第一个猜测。什么样的坚持?另外,您在日志中看到了哪些错误:IIS 失败请求日志、CF 错误日志、事件日志等...?
-
304 状态码不是错误。 Web 服务器应该在刷新时发送它,告诉浏览器可以使用它的缓存版本(文件没有被修改)。 JavaScript 和 css 文件的 500 错误很奇怪。我们所说的持久性是指负载均衡器是否配置为将每个请求从浏览器传递到同一个 ColdFusion 服务器?否则,每个请求可能会被传递到与第一个不同的服务器,如果它们不共享,则会导致会话错误。
-
另外,那些 500 错误应该写入一些条目是 Windows 系统事件日志。看这里。您不会在 ColdFusion 日志中找到任何内容,因为这些不是 ColdFusion 处理的文件(示例中的 js 和 css)。如果您在 Web 服务器上没有看到任何这些请求或错误,则响应可能来自您的负载均衡器。
-
我非常感谢您的回复。事实证明,罪魁祸首是网站根文件夹下的 web.config 文件(我们有 2 个)。我什至不确定它是怎么发生的,但我们似乎混合了 CF10 和 CF11 版本的 web.config,例如服务器 1:站点 A 使用 CF10 版本,站点 B 使用 CF 11,然后服务器 2:站点 A 使用 CF11,站点 B 使用 CF10。结束这个问题的正确方法是什么?
标签: iis coldfusion