我将ColdFusion 10安装为我们的主服务器。我正在使用会话来存储一些信息,并在应用程序文件中设置了sessiontimeout=#CreateTimeSpan(0,0,45,0)#
,但由于某种原因,会话在45分钟之前超时 - 约10分钟。是否有一个原因?我认为应用程序文件中的超时会覆盖ColdFusion管理中设置的任何内容。这是不是真的?ColdFusion会话超时太早
回答
从文档:“Configuring and using session variables”:
您还可以设置一个 特定应用程序内(从而否决管理员默认 设置)通过设置的Application.cfc会话变量超时期限this.sessionTimeout变量 或通过使用cfapplication标记sessionTimeout属性。 但是, 无法设置超时值,该值超过管理内存变量页面上设置的最大会话超时值 。
我的重点。
这可能是你的问题吗?您不会告诉我们您的CFAdmin设置实际上是什么。
这就是我正在寻找的那个...... sheesh。 –
它可能管理员没有正确设置,但在'服务器设置的''内存变量'会话变量'默认超时'设置为45分钟...但在'会话Cookie设置''Cookie超时'选项设置为20分钟 - 这可能是问题吗? – csber3
那么考虑到*默认*是**三十年**,我会说在分钟的粒度设置可能是错误的。而且,是的,这也意味着您的Cookie(需要将浏览器与会话相关联)在会话执行之前到期。这将孤立会议。现在......你说你的会话正在超时......你的意思是服务器上的会话超时,或者浏览器cookie和服务器会话之间的关联正在丢失?这是两回事。这是什么? –
想到几件事情。
你有它向后。如果应用程序特定值超过最大值,CF管理员允许您设置特定的最大值,以覆盖特定于应用程序的值。请参阅此链接:
它引用Application变量超时和是会议静音但行为应该是一样的。我敢肯定其他CF人可以纠正我,如果我错了。
因此,我会检查CF管理员(在内存变量下)的设置。如果会议时间少于45分钟,那么会议中设置的“最长”时间将会发挥作用。我相信默认值是2小时,但如果有人设置为10分钟,那么这可能是您的问题。
会话与应用程序本身绑定在一起。如果您正在更改应用程序名称(例如),它会清除所有会话 - 或者说,它们仍然存在,但是在不可访问的“旧”应用程序名称下。
请记住,重新启动CF将消除会话。
会话是服务器/内存特定的。如果您有多台服务器,则从服务器A切换到服务器B将导致用户失去会话。有策略可以避免这种情况(粘滞会话,集群和复制等)。
会话可以通过编程方式删除。你可能会知道是否是这种情况,但值得注意。
这些都是我能想到的东西。祝你好运!
我认为在CFSET语句的语法不应该有##的,我做的方式是这样的:
<cfset this.applicationTimeout= createtimespan(0,0,45,0)>
- 1. ASP.NET会话超时太早
- 2. Coldfusion会话超时
- 3. PHP会话过期太早
- 4. PHP会话超时太快
- 5. PHP会话超时太快
- 6. PHP会话超时太快
- 7. PHP/Apache超时太早
- 8. Coldfusion不同会话超时长度
- 9. cookie过期或会话超时太快
- 10. std ::未来超时太早,替代?
- 11. ColdFusion会话不会超时?为什么不?
- 12. 使用Spring Security时,会话比预期更早超时
- 13. 会话超时
- 14. 会话超时
- 15. 会话超时
- 16. 会话超时
- 17. 会话超时
- 18. 会话超时
- 19. Coldfusion会话Cookie
- 20. 为什么asp.net会话比其超时更早过期?
- 21. 什么触发了早期会话超时
- 22. Web会话超时会被认为太长?
- 23. PHP会话超时
- 24. JBoss会话超时
- 25. Jhipster会话超时
- 26. php会话超时
- 27. PHP会话超时
- 28. PostgreSQL:会话超时?
- 29. FiddlerCore会话超时
- 30. SonarQube会话超时
你可以把一些代码放到'onRequestEnd()'&' onSessionEnd()'为了让你更准确地知道会话时间超时多久?它是*所有*会议? –