【发布时间】:2011-06-24 11:41:46
【问题描述】:
您好,使用 Sql Server 作为 SessionState 服务器并将超时时间增加到 2 周有什么缺点吗?我的目标是让人们尽可能长时间地登录,同时将网络服务器内存保持在最低限度。
【问题讨论】:
标签: asp.net sql-server iis session-state
您好,使用 Sql Server 作为 SessionState 服务器并将超时时间增加到 2 周有什么缺点吗?我的目标是让人们尽可能长时间地登录,同时将网络服务器内存保持在最低限度。
【问题讨论】:
标签: asp.net sql-server iis session-state
您在会话中存储了哪些信息?它们会消耗服务器资源,而让它们存活 2 周并不是一般的做法。
您可以存储一个 cookie 以将用户标记为已登录,并在他再次回来时加载会话数据。
【讨论】:
我想你可能在这里有点混淆了一些概念。
SessionState 和“登录”可能意味着两种不同的东西。
SessionState 表示存储在环境中“会话”对象中的对象/数据。用户登录通常使用 ASP.NET Membership 系统进行控制。您可以拥有一个具有持久登录(记住我)的用户,但会话将在 20 分钟后超时。系统仍会记住它们,但在会话中为用户“缓存”的数据可能会消失。
更直接地回答您的问题,是的,这种类型的 SQL 会话状态方法存在许多问题,并且取决于会话值的大小和流量,它可能或多或少是极端的。
此信息仍会占用内存,只是 DB 端的硬盘内存,但随着它的增长,您会看到性能下降。仅会话放弃就可能导致大量数据被缓存。
随着会话项数的增加,会话的性能会下降,SQL Server 系统的负载也会增加。
根据服务器的大小、SQL Server 许可证以及在存储会话时间长时可能会遇到数据库问题或硬件限制的流量。
【讨论】: