0

我是 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 保留一些我想在超时后保留的会话变量?

谢谢。

4

1 回答 1

3

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

编辑: 如果你能想出一个对象结构来存储向导的“状态”(完成的步骤、选择的选项等),你可以序列化对象并将它们作为 XML BLOB 存储在 SQL Server 中,使用用户的login 和 ProductID 作为主键。这样你就可以反序列化状态,并且用户可以从他们离开的地方继续。

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

于 2012-05-11T01:01:27.417 回答