我是asp.net的新手。所以请帮帮我。我试图通过使用此链接上的指令将会话模式更改为SQLServer来保留一些会话变量:
我已经阅读了一些帖子,说在SQL Server数据库中存储会话将在会话超时后保留会话。但就我而言,在会话超时后,aspstateTempSessions表中的会话也会被删除。有没有办法告诉asp.net保留一些我希望在超时后保留的会话变量?
感谢。
答案 0 :(得分:3)
Session是一个易失性存储系统,只有在会话处于活动状态时才会生效。如果您需要值来维持会话,您应该继续将它们存储在一个单独的持久性结构中,例如与用户(而不是会话)绑定的SQL表。
修改强> 如果您可以提供一个对象结构来存储向导的“状态”(已完成步骤,选择了选项等),您可以序列化对象并将它们作为XML BLOB存储在SQL Server中,并使用用户的登录名和ProductID作为主键。这样,您可以反序列化状态,用户可以从中断处继续。
正如我在评论中所述,您需要设置一个放弃超时期限,之后该对象的所有修改都将被删除并被视为丢失。