(asp.net)在会话超时后可以在SQL Server中保留一些会话变量吗?

时间:2012-05-10 23:31:17

标签: asp.net sql-server session

我是asp.net的新手。所以请帮帮我。我试图通过使用此链接上的指令将会话模式更改为SQLServer来保留一些会话变量:

http://blogs.msdn.com/b/akshayns/archive/2008/10/04/how-to-configure-sql-server-to-store-a-session-state.aspx

我已经阅读了一些帖子,说在SQL Server数据库中存储会话将在会话超时后保留会话。但就我而言,在会话超时后,aspstateTempSessions表中的会话也会被删除。有没有办法告诉asp.net保留一些我希望在超时后保留的会话变量?

感谢。

1 个答案:

答案 0 :(得分:3)

Session是一个易失性存储系统,只有在会话处于活动状态时才会生效。如果您需要值来维持会话,您应该继续将它们存储在一个单独的持久性结构中,例如与用户(而不是会话)绑定的SQL表。

修改 如果您可以提供一个对象结构来存储向导的“状态”(已完成步骤,选择了选项等),您可以序列化对象并将它们作为XML BLOB存储在SQL Server中,并使用用户的登录名和ProductID作为主键。这样,您可以反序列化状态,用户可以从中断处继续。

正如我在评论中所述,您需要设置一个放弃超时期限,之后该对象的所有修改都将被删除并被视为丢失。