ColdFusion会话超时太早了

时间:2014-01-14 15:52:09

标签: session coldfusion timeout session-timeout

我安装了ColdFusion 10作为我们的主服务器。我正在使用会话来存储一些信息并在应用程序文件中设置sessiontimeout=#CreateTimeSpan(0,0,45,0)#但由于某种原因,会话在45分钟之前超时 - 大约10分钟。是否有一个原因?我认为应用程序文件中的超时会覆盖ColdFusion管理员中设置的任何内容。这不是真的吗?

3 个答案:

答案 0 :(得分:2)

来自文档:“Configuring and using session variables”:

  

您还可以在a中设置会话变量的超时时间   特定应用程序(从而推翻管理员默认值   通过设置Application.cfc This.sessionTimeout变量来设置)   或者使用cfapplication标签sessionTimeout属性。的然而,   你不能设置超时值超过最大值   在“管理员内存变量”页面上设置的会话超时值

我的强调

这可能是你的问题吗?您没有告诉我们您的CFAdmin设置实际是什么。

答案 1 :(得分:2)

有些事情会浮现在脑海中。

你倒退了。如果应用程序特定值超过最大值,CF管理员允许您设置覆盖应用程序特定值的特定最大值。看到这个链接:

http://help.adobe.com/en_US/ColdFusion/10.0/Admin/WSc3ff6d0ea77859461172e0811cbf3638e6-7ffc.html#WSc3ff6d0ea77859461172e0811cbf3638e6-7ff4

它引用应用程序变量超时并且对会话静音但行为应该相同。如果我对此错了,我相信其他CF人可以纠正我。

因此,我会检查CF管理员中的设置(在内存变量下)。如果会话时间小于45分钟,那么会话的“最长”时间将会有效。我认为默认值是2小时,但如果有人将其设置为10分钟,则可能是您的问题。

会话与应用程序本身相关联。如果您要更改应用程序名称(例如),它会清除所有会话 - 或者更确切地说,它们仍然存在,但在“旧”应用程序名称下无法访问。

请记住,重启CF会消灭会话。

会话是特定于服务器/内存的。如果您有多台服务器,则从服务器A切换到服务器B将导致用户丢失其会话。有策略可以避免这种情况(粘性会话,群集和复制等)。

可以通过编程方式删除会话。您可能知道是否是这种情况,但值得注意。

这些都是我能想到的。祝你好运!

答案 2 :(得分:0)

我认为cfset语句中的语法不应该包含##,我这样做是这样的:

<cfset this.applicationTimeout= createtimespan(0,0,45,0)>