今天早上我使用cfdocument
标签遇到了一些问题。当用户运行报表时,报表只会挂起。该报告已经运行多年,没有任何问题。我甚至把所有代码都拿出来放在下面。
<cfdocument format="PDF">this is a test</cfdocument>
浏览器仍然挂起,没有错误,CPU也没有跳转。我不知道为什么这不起作用。有什么建议吗?
答案 0 :(得分:1)
已知Adobe ColdFusion存在错误,其中app.js
内的代码中的错误(例如,未正确嵌套的HTML标记未关闭,数据库查询错误,无效变量)可以在不显示异常的情况下无声地失败。发生这种情况时,所有其他<cfdocument></cfdocument>
请求将堆积在后面。即使其他页面(不使用cfdocument
)完成正常,也会发生这种情况
如您所见,重新启动CF服务也会重新启动PDF服务并清除“堆积”。
解决方案是调试cfdocument
标记内的代码,以便它不会抛出异常。由于您的问题听起来很间歇,因此调试起来非常困难。您可以将所有放在cfdocument
内cfdocument
内,然后cftry
任何例外情况,然后通过电子邮件发送给自己。
答案 1 :(得分:1)
我有一堆程序在cfdocument标签中包含file:///。
我曾经认为文件引用会更有效率,但是在2016年的coldfusion期间,它导致了偶尔的,无法预测的服务器挂起。
cfdocument进程将所有必需的文件移动到工作文件夹中,然后生成pdf。
在CF 2016中,有一个设置(在(分钟)之后在CFaaS期间创建的清除临时文件,默认情况下清除超过30分钟的工作文件。
但是,如果您使用file:///,则不会重置该文件的创建日期,并且当该进程运行时,它将立即删除该文件 - 它总是超过30分钟。
如果cfdocument进程处于处理的一半,并且它与Clear Temp File进程发生冲突,则所需文件将消失,cfdocument将挂起。
然后调用cfdocument的后续程序也会挂起,因为任何时候都只允许执行一个程序。
然后这最终会填满所有的cf处理槽,并且需要重新启动cf以使事情再次发生。