2012-08-06 75 views
0

我使用ColdFusion 8,我用这行超时会话:ColdFusion会话不会超时?为什么不?

<CFAPPLICATION NAME="XXX" 
CLIENTMANAGEMENT="NO" 
SESSIONMANAGEMENT="Yes" 
sessionTimeout="#CreateTimeSpan(0,0,1,0)#"> 

我创建一个会话是这样的:

if (not structKeyExists(SESSION, "UserInfo")) { 
    SESSION.UserInfo = structNew(); 
} 

我希望我的会议将在一分钟后超时。这工作不正常。我尝试过所有numers的组合,但我的会话永远不会超时。即使在整个周末都不工作(并关闭浏览器)后,我的会话仍在运行。

为什么我的会话不能超时?

编辑〜我的证据表明,我的会话没有超时,我可以通过会话范围访问具有特定信息的网站,即使在未使用该浏览器数周后,它也不会死亡。

我们有三个有三个不同名称的网站1)XXXProd,2)XXXStage和3)XXXDev。

+1

这是最令人费解的。您是否在此服务器上使用Coldfusion会话或J2EE会话? – barnyr 2012-08-06 15:37:07

+0

应用程序是独一无二的吗? – Busches 2012-08-06 15:38:14

+1

是什么让你认为你的会议没有超时?你是否记录时间数据onSessionEnd()?或者你是否基于刷新浏览器并发现你的会话cookie没有改变? – 2012-08-06 15:38:58

回答

1

您是否考虑切换到J2EE会话?

<cfscript> 
    session.setMaxInactiveInterval(1); 
    getPageContext().getSession().invalidate(); 
</cfscript> 
<cfcookie name="jsessionid" expires="now"> 
<cflocaton url="/" addtoken="false"> 

这不仅会杀死会话的Cookie和ColdFusions知识,还会杀死底层会话。您也不需要通过这种方式获得“无时间”页面请求。

随着你目前的情况,在服务器监视器,你可以看到正在创建和销毁的会话?