会话没有在ASPState数据库中持久化?

时间:2013-11-13 18:24:57

标签: asp.net sql-server asp.net-mvc-3 session-state sql-session-state

我们将webapp配置为webgarden。因此我们希望用户使用sqlserver模式存储会话状态。我在web.config中的配置如下

<sessionState mode="SQLServer" cookieless="false" sqlConnectionString="data source=[DBSERVER]; Database=ASPState; user id=[USERNAME];password=[PASSWORD];" />

我运行了Aspnet_regsql.exe工具并将-sstype设置为“p”

我已经确认我也可以从网络服务器连接到ASPState DB,提供的用户名有权在数据库上执行所有存储过程。

使用Chrome中的开发者工具,我可以看到ASP.NET会话cookie并查看ID,因此我知道正在创建会话。

我收到任何类型的数据库错误。

但是,当我查询“ASPStateTempSessions”表时,没有记录。 “ASPStateTempApplications”中也没有任何记录。

这些会话何时应保存到数据库? 为什么我看不到它们?

2 个答案:

答案 0 :(得分:0)

尝试添加超时属性。

<sessionState mode="SQLServer" cookieless="false" sqlConnectionString="data source=[DBSERVER]; Database=ASPState; user id=[USERNAME];password=[PASSWORD];" timeout="20" />

答案 1 :(得分:0)

尝试添加超时和应用程序名称,ASPState是默认数据库,因此我们可以将其删除

    <sessionState mode="SQLServer" timeout="20" sqlConnectionString="Data Source=SQLServer; Application Name=App; user id=UserName; password=Password"/>