2012-08-06 61 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知識,還會殺死底層會話。您也不需要通過這種方式獲得「無時間」頁面請求。

隨着你目前的情況,在服務器監視器,你可以看到正在創建和銷燬的會話?