coldfusion - cflocation 在 CF10 中不再有效

标签 coldfusion cfml cflocation

自从我从 CF9 升级到 CF10 以来,我一直在与 cflocation 的错误作斗争。我已经为此工作了很多次,但总是放弃,但今天终于让我很恼火,是时候解决这个问题了(我希望)。

首先,很抱歉,因为我曾尝试编写一个简单的测试用例来重现此问题,但到目前为止我无法在原始代码之外重现它。

我有一个应该在一夜之间运行的多步骤导入过程。该过程由大约 10 个链接在一起的文件组成。当通过计划任务调用流程时,还会传递一个 URL 参数 (scheduledtask)。如果该参数不存在,则在每个步骤结束时它会停止并等待用户单击下一步的链接。如果参数确实存在,它使用 cflocation 移动到下一步。

在所有步骤中,第二个是最复杂和最耗时的(来自多个 Web 服务请求的数据然后需要连接、清理和插入数据库)。移至 CF10 后,第二步出现问题。该页面似乎工作正常,因为它到达了 cflocation 标签所在的页面底部,但它从不触发 cflocation。我已经添加了一个 cfmail 标签,以便在调用 cflocation 时给我发电子邮件,它总是被发送,但 cflocation 不会再次触发。

没有比这更基础的了:

<cfif scheduledtask EQ "true">
   <cfmail from="xxxxx” to="xxxx” subject="About to call duplicate" type="text/html"> 
      <p>calling duplicate check - scheduledtask</p>
   </cfmail>

   <cflocation url="importDupCheck.cfm?scheduledtask=true" addtoken="false">
</cfif>

我知道 cfflush 和 cflocation 有问题,我已经检查过了。

作为测试,我尝试将上述逻辑移到页面上,刚好在 Web 服务检索到所有数据之后但在处理数据之前,这次 cflocation 起作用了。我想这可能是一个超时问题,即使允许页面完全加载,计划任务引擎也放弃了等待。我尝试通过一个包含以下内容的基本文件来对此进行测试:

<cfset sleep(240000)>
 * 4 minutes

在它调用 cflocation 之前,但它工作正常。

该过程中的其他步骤与 cflocation 一起按预期工作,只是这一步不行。所有这些代码在 CF9 下运行良好,只是在 CF10 下失败。

有没有人对我应该看的地方有一些指示?

问候 标记


* 更新* 所以我现在已经弄清楚了如何用几行代码轻松地重现它。原来和定时任务无关。

指数.cfm

<h1>Testing cflocation</h1>

<cfloop index="i" from="1" to="7000" ><!--- For me it stops working once the loop goes beyond 6808 rows --->
    row <cfoutput>#i#</cfoutput>: abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789<br/>
</cfloop>

<p>Now loading resultpage via cflocation</p>
<cflocation url="resultpage.cfm" addtoken="false">

结果页.cfm

<h1>Made it!</h1>
<p>Reload the <a href="index.cfm">first page</a></p>

在我的测试中,我发现如果我循环 6808 次它可以工作但 6809 次失败。对于 7000 条记录,我们只讨论一个 36 KB 的文件......为什么这只在 CF10 中失败?

我应该注意的最后一件事,以防它产生影响 - 我所做的一切都是通过 https 完成的。

最佳答案

好的,我解决了

在 CF 管理员中

最大输出缓冲区大小 1024

之后将发生刷新,这将停止 cflocation 工作。

增加它,它就起作用了。

关于coldfusion - cflocation 在 CF10 中不再有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19416810/

相关文章:

coldfusion - CFWheels - 我应该在本地确定我的 Wheels 操作吗?

tomcat - Railo CFHTTP SSL trustAnchors 参数必须非空

使用 ColdFusion 重定向到 UTF-8 URL

php - 将 mysql_connect 转换为 cfquery

coldfusion - 为什么 cflocation addtoken 的默认值不等于 no?

javascript - 如何在转到链接中的 URL 之前将所有单击的链接发送到页面

coldfusion - 如何监控 cfthread 进程?

pdf - Coldfusion:CFDocument PDF 替代品

SQL xml输出参数抛出错误?