将this.clientStorage声明为DSN时,ColdFusion 10客户端变量不会持久

时间:2014-03-13 13:47:20

标签: coldfusion-10

将CF 5.x站点升级到ColdFusion 10 u13 ...

这些是代码段,而不是完整文件。

的Application.cfc:

<cfset this.clientManagement = true>
<cfset this.clientStorage = "myCSDSN">

main.cfm

<cfset client.test = "testing 1 2 3">
<cfdump var="#client#" label="client">

clienttest.cfm

<cfdump var="#client#" label="client">

首先加载main.cfm。你会看到这个:

enter image description here

现在在同一浏览器的新标签页中加载clienttest.cfm。你会看到这个:

enter image description here

请注意clienttest.cfm中缺少client.test。然而,会话管理cookie在两个转储中都是相同的。

现在在Application.cfc中更改此行:

<cfset this.clientStorage = "cookie">

重新运行main.cfm,然后运行clienttest.cfm。现在client.test将出现在两个转储中。 Hitcount也会在每次重新加载时开始递增。

数据源myCSDSN存在并且其中包含CDATA和CGLOBAL表。 myCSDSN数据源已在CF Administrator中设置为客户端变量存储机制(但它不是默认值)。没有新记录被添加到这些表中。

为什么这不适用于数据源?

使用“cookie”存储选项的任何缺点?

1 个答案:

答案 0 :(得分:2)

我删除了CDATA和CGLOBAL表,并通过ColdFusion Administrator重新创建它们。

之后开始使用DSN。

从ColdFusion 5到ColdFusion 10存在数据库结构差异。

[cfid] char(20)在两个表中都成为[cfid] char(64)。