Session ColdFusion会话超时太早

Session ColdFusion会话超时太早,session,coldfusion,timeout,session-timeout,Session,Coldfusion,Timeout,Session Timeout,我已经安装了ColdFusion 10作为我们的主服务器。我正在使用会话来存储一些信息,并在应用程序文件中设置了sessiontimeout=#CreateTimeSpan(0,0,45,0)#,但由于某些原因,会话在45分钟之前超时-大约10分钟。这有什么原因吗?我认为在应用程序文件中设置超时将覆盖ColdFusion管理中设置的任何内容。这不是真的吗?来自文档:“”: 您还可以为会话中的会话变量设置超时期限 特定应用程序(从而推翻管理员默认设置 设置)通过设置Application.cfc

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

来自文档:“”:

您还可以为会话中的会话变量设置超时期限 特定应用程序(从而推翻管理员默认设置 设置)通过设置Application.cfc This.sessionTimeout变量 或者使用cfapplication标记sessionTimeout属性但是, 不能为大于最大值的设置超时值 在管理员内存变量页上设置的会话超时值

我的重点

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

来自文档:“”:

您还可以为会话中的会话变量设置超时期限 特定应用程序(从而推翻管理员默认设置 设置)通过设置Application.cfc This.sessionTimeout变量 或者使用cfapplication标记sessionTimeout属性但是, 不能为大于最大值的设置超时值 在管理员内存变量页上设置的会话超时值

我的重点


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

我想到了几件事

你把它倒过来了。CF admin允许您设置一个特定的最大值,如果特定于应用程序的值超过最大值,该值将覆盖特定于应用程序的值。请参阅此链接:

它引用应用程序变量超时,并在会话中处于静音状态,但行为应相同。如果我错了,我相信其他CF人员可以纠正我

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

会话绑定到应用程序本身。如果您正在更改应用程序名称(例如),它将清除所有会话,或者更确切地说,它们仍然存在,但位于无法访问的“旧”应用程序名称下

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

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

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


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

我想到了几件事

你把它倒过来了。CF admin允许您设置一个特定的最大值,如果特定于应用程序的值超过最大值,该值将覆盖特定于应用程序的值。请参阅此链接:

它引用应用程序变量超时,并在会话中处于静音状态,但行为应相同。如果我错了,我相信其他CF人员可以纠正我

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

会话绑定到应用程序本身。如果您正在更改应用程序名称(例如),它将清除所有会话,或者更确切地说,它们仍然存在,但位于无法访问的“旧”应用程序名称下

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

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

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


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

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

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

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

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


这就是我要找的。。。可能管理员设置不正确,但在“服务器设置>内存变量”下,会话变量“默认超时”设置为45分钟。。。但在“会话cookie设置”下,“cookie超时”选项设置为20分钟——这可能是个问题吗?鉴于默认值为30年,我想说将该设置设置为分钟的粒度可能是错误的。而且,是的,这也意味着您的cookie(需要将浏览器与会话关联)在会话到期之前过期。这将使会话成为孤儿。现在你说你的课程超时了。。。您的意思是服务器上的会话正在超时,还是浏览器cookie和服务器会话之间的关联正在丢失?这是两件不同的事情。这是哪一个?30年的事情参考:。你看过那些文件了,对吗?你不只是盯着屏幕想知道事情是如何运作的,而实际上。。。试着自己去发现。是吗?这是浏览器和服务器之间的关联,即浏览器要求我登录。查看了链接,但可能我的操作不正确,因为我使用的是application.cfm页面,而不是application.cfc(从未设置