【发布时间】:2023-03-31 07:35:01
【问题描述】:
我的一个应用程序使用 sql 会话状态,超时当前设置为 20 分钟。我的问题是,由于它存储在数据库中而不是服务器内存中,我应该能够增加超时而不会出现任何重大的性能问题,对吧?
我不太了解超时对于数据库会话状态场景的重要性,因为数据库应该能够轻松处理大量会话。
【问题讨论】:
标签: asp.net database session-state session-timeout
我的一个应用程序使用 sql 会话状态,超时当前设置为 20 分钟。我的问题是,由于它存储在数据库中而不是服务器内存中,我应该能够增加超时而不会出现任何重大的性能问题,对吧?
我不太了解超时对于数据库会话状态场景的重要性,因为数据库应该能够轻松处理大量会话。
【问题讨论】:
标签: asp.net database session-state session-timeout
我认为超时的相关性更适用于面向公众的网站,您可能会获得大量点击并很快填满您的数据库。话虽如此,无限也不是您想要的……
【讨论】:
我也在寻找您的意见的确认 - 如果硬盘空间便宜,我应该能够在 SqlSessionState 中进行 8 小时的会话而不会出现明显的性能问题(超出 20 分钟的 sql server 会话原因),给定一个中型办公级Intranet 应用程序。
请记住,有关会话的建议涉及您一次可以处理多少用户,用户开始某些工作、长时间被打断以及需要继续的可能性有多大。
最后,如果您在会话中存储身份验证令牌或角色,那么您可能希望更频繁地使它们过期以检查用户是否仍然是用户并且仍然具有这些角色。
【讨论】:
会话的长度应该由功能决定(例如,在线银行往往会缩短超时时间,而像SO 这样的网站却允许更长的时间来输入条目),而不是由实现机制决定。
使用out-of-process mode 允许在 IIS 重新循环的情况下保留会话上下文,并且需要较少的直接(由 IIS 本身使用)内存资源。但这与会话应该持续 8 小时还是 5 分钟无关。
【讨论】: