ColdFusion / IIS /重定向限制?

时间:2018-07-09 16:43:30

标签: iis coldfusion iis-8 coldfusion-10

我有一个ColdFusion脚本,该脚本执行任务,然后使用<cflocation>标签重定向到自身,并传入下一个要处理的ID。该脚本在确切地排了51行后停止工作。我以为这是代码中的错误,因此我将ID的进程更新为52,它从ID 52到102运行并停止。同样,准确地是51行。

有人知道cflocation标签上ColdFusion是否有限制吗?还是这可能是IIS正在做的事情?

当我使用JavaScript window.location方法时,它可以正常工作,并且直到结尾都不会停止-如预期的那样。

已更新-解释

在处理完每个ID之后,脚本重定向到其自身的原因是因为ColdFusion直到请求完成后才将变量/内存释放回JVM。因此,对于执行几百个复杂任务的请求,内存使用量将继续增长,直到该请求正式完成为止。这会导致JVM中的内存不足错误。据我了解,纠正此错误的最佳方法是将项目拆分为单独的请求,这样ColdFusion会将请求变量/内存释放回JVM。因此,为什么我们要处理1个项目,然后重定向到要传递的下一个ID进行自我处理。这是为了使ColdFusion将请求视为唯一请求,并减少内存消耗。

2 个答案:

答案 0 :(得分:1)

我不确定ColdFusion / IIS中是否存在限制,但是我认为浏览器具有故障保护功能,可以限制无限循环。在我的浏览器(Chrome)中,似乎限制为19。

克服此问题的方法是确保HTML加载,以免混淆会话。然后使用以下任一重定向。

  1. window.location
  2. <meta http-equiv="refresh" content="0;url=http://example.com">

答案 1 :(得分:1)

这是一个“丑陋的黑客” ,但也许您想尝试一下,以防找不到其他选择。

我可以通过执行ColdFusion中的reinterpret_cast来测试和运行此程序,直到完成预定任务为止,因此它需要static_cast可用。


reinterpret_cast<double&>(uint64)