2014-01-14 29 views
1

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

+0

你可以把一些代码放到'onRequestEnd()'&' onSessionEnd()'为了让你更准确地知道会话时间超时多久?它是*所有*会议? –

回答

2

从文档:“Configuring and using session variables”:

您还可以设置一个 特定应用程序内(从而否决管理员默认 设置)通过设置的Application.cfc会话变量超时期限this.sessionTimeout变量 或通过使用cfapplication标记sessionTimeout属性。 但是, 无法设置超时值,该值超过管理内存变量页面上设置的最大会话超时值 。

我的重点

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

+0

这就是我正在寻找的那个...... sheesh。 –

+0

它可能管理员没有正确设置,但在'服务器设置的''内存变量'会话变量'默认超时'设置为45分钟...但在'会话Cookie设置''Cookie超时'选项设置为20分钟 - 这可能是问题吗? – csber3

+0

那么考虑到*默认*是**三十年**,我会说在分钟的粒度设置可能是错误的。而且,是的,这也意味着您的Cookie(需要将浏览器与会话相关联)在会话执行之前到期。这将孤立会议。现在......你说你的会话正在超时......你的意思是服务器上的会话超时,或者浏览器cookie和服务器会话之间的关联正在丢失?这是两回事。这是什么? –

2

想到几件事情。

你有它向后。如果应用程序特定值超过最大值,CF管理员允许您设置特定的最大值,以覆盖特定于应用程序的值。请参阅此链接:

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

它引用Application变量超时和是会议静音但行为应该是一样的。我敢肯定其他CF人可以纠正我,如果我错了。

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

会话与应用程序本身绑定在一起。如果您正在更改应用程序名称(例如),它会清除所有会话 - 或者说,它们仍然存在,但是在不可访问的“旧”应用程序名称下。

请记住,重新启动CF将消除会话。

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

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

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

0

我认为在CFSET语句的语法不应该有##的,我做的方式是这样的:

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