我有一个您登录的网页,然后创建一个会话变量,该会话变量在所有后续页面访问中被检查,如果它不存在或与记录的会话ID不匹配,则会被踢出页面
代码在这里:
Application.cfm
会话设置:
<CFAPPLICATION NAME="myAPP" APPLICATIONTIMEOUT="#CREATETIMESPAN(0,0,60,0)#" sessionTimeout=#CreateTimeSpan(0, 0, 20, 0)# sessionManagement="Yes">
检查会话变量集:
<CFLOCK TIMEOUT="30" THROWONTIMEOUT="no" TYPE="Exclusive" Scope="session">
<CFSET session.started = #ucase(dbGUID)#>
</CFLOCK>
现在,该页面还通过JQuery的load()方法每隔几秒将数据加载到不同的DIV中,来自不同的后端页面。对于一些完全没有问题的人来说这一切都很好,但有些人可以在几分钟到几个小时内完成任何工作,然后突然Lucee会生成一个新的会话,导致数据加载回主页面强制主页刷新,以便您可以重新登录。然而,发生的是页面刷新并且原始会话仍然实际存在,因此然后再次使用,然后人员再次能够看到页面数据。对于某些人来说,这可能会发生很多次,而对其他人来说则永远不会发生。
我确信这不是个人的,因为在同一个人的不同PC上尝试它对某些人来说是好的而不是在其他人身上。直接在Web服务器上尝试(带有指向本地的域的hosts文件),它没有问题。它似乎不是负载均衡器,因为它在负载均衡器上下都会发生。 为了清楚起见,它不是导致新会话的1个特定页面,它可能是任何正在使用的页面,它也不是由于第一次尝试访问页面而导致的,因为它可能在访问之前被访问了几十次正在生成新会话。它也不是超时,因为会话超时设置为20分钟,但它可能在原始会话设置的一分钟内发生。
问题是为什么Lucee突然决定创建一个新会话(旧会话仍然存在),我怎么能阻止它和/或让它再次使用原始会话返回。