我们已将 ColdFusion 应用程序从 ColdFusion 10 迁移到 ColdFusion 2016。迁移后,应用程序变量不再停留在其范围内,而是在每次请求时都在刷新。
考虑以下示例,
应用程序.cfm
<cfsetting enablecfoutputonly="true" />
<CFAPPLICATION NAME="Test App"
SETCLIENTCOOKIES="YES"
CLIENTMANAGEMENT="YES"
SESSIONMANAGEMENT="YES"
SESSIONTIMEOUT="#CREATETIMESPAN(0,8,0,0)#"
APPLICATIONTIMEOUT="#CREATETIMESPAN(1,0,0,0)#">
<cfdump var="#Application#" label="app">
<CFLOCK SCOPE="APPLICATION" TYPE="EXCLUSIVE" TIMEOUT="10">
<CFSET Application.Email = "test@test.com">
<CFSET Application.DataSource="test">
</cflock>
测试.cfm
<CFLOCK SCOPE="APPLICATION" TYPE="READONLY" TIMEOUT="10">
<cfset Application.one = 1>
<cfset Application.two = 2>
<cfset Application.three = 3>
</cflock>
OnRequestEnd.cfm
<cfsetting showdebugoutput="false" />
<cfdump var="#Application#" label="onRequestEnd">
不知道为什么应用程序范围的变量正在失去它的持久性。
以下是预期的输出..
知道为什么应用程序变量会丢失并在每个请求中刷新吗?