【问题标题】:ASP.NET session state in sqlsql 中的 ASP.NET 会话状态
【发布时间】:2012-03-02 16:38:08
【问题描述】:

我们使用sql server来存储asp.net的会话,当我查看ASPState数据库中的ASPStateTempSessions表时,它是空的,我想知道,一旦会话过期,这个表中的记录会被删除吗?什么时候会在那里删除记录?

【问题讨论】:

    标签: asp.net database session


    【解决方案1】:

    InstallSqlState.sql 脚本创建一个名为 ASPState_Job_DeleteExpiredSessions 删除过期会话 临时数据库。回想一下,ASP.NET 不会使会话资源保持活动状态 无限期地。在使用 SQL Server 时支持此功能 保持状态,SQL Server 代理必须正在运行,以便 过期会话删除作业根据需要运行。默认情况下,作业是 计划每分钟运行一次。它删除会话状态行 过期值小于当前时间。账户所在的账户 SQL Server 代理运行必须有权限执行 DeleteExpiredSessions 存储过程。

    请参考this one

    【讨论】:

    【解决方案2】:

    现在已重命名为 dbo.DeleteExpiredSessions。

    如果您没有 SQL Server 代理,只需从命令行运行它即可。

    sqlcmd -S MyServerName -d MyStateDbName -E -Q "DeleteExpiredSessions"  
    

    此外,如果您要删除大量数据,您可能需要进行 DBCC 收缩。

    【讨论】:

      猜你喜欢
      • 2014-09-17
      • 2019-10-28
      • 2012-12-11
      • 2011-07-21
      • 2011-06-07
      • 2010-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多