0

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

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

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

4

1 回答 1

0

顾名思义,会话状态只对当前浏览器会话有效。如果您需要将购物车保存得比浏览器会话更长,则需要将其保存到更永久的结构中。每次访问都会分配一个新的会话 ID,它是用于检索会话状态数据的键。

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

于 2015-08-10T01:30:41.457 回答