Out of process会话状态停止工作



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

我没有对我的应用程序或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" />

是否有人遇到过这个问题(或知道解决方案),其中进程会话状态在前几个测试中工作(数据正确保存),但随后随机停止工作?

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

这意味着您还需要一个持久的cookie,或者为用户提供一个标识以便稍后检索购物车。

最新更新