Coldfusion 11 REST API 服务似乎意外停止工作



我的客户端使用运行IIS和Coldfusion 11的Windows Server 2012 R2标准操作系统。我通过 CF Admin 创建了一个 REST API 服务。我了解每次在注册的 API 服务文件夹中的任何 CFC 中进行更改时,API 都需要手动刷新。但有时,API 显然似乎停止工作并返回 404 错误,即使没有人对其进行任何更改。

我读了这个旧线程,它说: https://forums.adobe.com/thread/1487200

以下情况也会中断服务

  • 管理员中的"清除模板缓存"按钮

  • 重新启动服务器

我在本地主机上重新启动了 CF 服务,尽管我的机器正在运行 CF10 和 Apache,并且客户端的服务器在 IIS 上运行 CF11,但它并没有中断服务。由于这些差异,服务器上是否存在不同的行为,我的意思是 CF11 REST API 服务是否需要在服务器或 CF 服务重新启动后刷新?我无法真正重新启动生产服务器上的 CF 服务器来测试这一点。

我还在下面的线程中读到,清除模板缓存问题将在 CF10 和 CF11 的更新中得到解决。 https://tracker.adobe.com/#/view/CF-3850183

如何检查客户端服务器上的 CF11 实例是否具有此更新?

是否有任何其他原因可能导致服务中断?如果我能找出导致服务崩溃的确切原因,我很可能会设计出一种自动刷新服务的方法。

谢谢。

更新

这在生产服务器上再次发生,我设法抓住了日志。这就是应用程序.log和异常.log所说的:

"错误","ajp-bio-8014-exec-210","03/30/17","09:16:12",,"应用程序 api2 已修改且未刷新。刷新应用程序。包含或处理的文件的特定顺序是:C:\foo\bar\baz.cfc''

我检查了文件 baz.cfc,它没有被修改。它最后一次修改是在几天前。

感谢@Miguel-F的建议,我更新了Coldfusion,这已经解决了这个问题。

该问题是由 Coldfusion 中的一个错误引起的,如果从模板缓存中删除任何服务组件,则 API 将停止响应并记录以下消息:

应用程序 api2 已修改且未刷新。刷新应用程序。包含或处理的文件的特定顺序是:C:\foo\bar\baz.cfc'

您可以使用 CF admin 中的清除模板缓存按钮重新创建此问题。

我将 CF10 更新为 update22,将 CF11 更新为 11,自 :) 年以来一直没有发生过这个问题。

最新更新