进程外会话状态停止工作?

时间:2015-08-09 23:02:37

标签: asp.net sql-server session state-management

我有一个购物车,我希望即使应用程序关闭并重新启动,购物车中的产品也会保留。我设置了进程会话状态,它实际上工作了(一段时间)。

我没有对我的应用程序或sqlserver进行任何更改,但是现在当我测试我的购物车时(大约一小时后),当我关闭浏览器或重新启动应用程序时,数据不再存在。

我的ASP.Net State服务仍在运行,我将我的类设置为[serializable],没有任何改变。

以下是我在web.config中配置会话状态的方法

  <sessionState allowCustomSqlDatabase="true" mode="SQLServer" sqlConnectionString="Data Source=.\***;Initial Catalog=aspnet;Integrated Security=True;Database=ASPState;User ID=***;Password=***" timeout="180" useHostingIdentity="true" />

有没有人遇到这个问题(或者知道一个解决方案),其中进程外会话状态适用于前几次测试(数据正确持久),但是后来随机停止工作?

1 个答案:

答案 0 :(得分:0)

顾名思义,会话状态仅适用于当前的浏览器会话。 如果您需要将购物车保持比浏览器会话更长的时间,则需要将购物车保存为更永久的结构。每次访问都会分配一个新的会话ID,它是用于检索会话状态数据的密钥。

暗示您还需要一个持久性cookie,或者为用户提供一个身份以便稍后检索购物车。