【问题标题】:When using MySqlSessionProvider, what deletes expired sessions?使用 MySqlSessionProvider 时,什么会删除过期的会话?
【发布时间】:2013-03-23 22:35:58
【问题描述】:

我从this MSDN page 知道的关于 Asp.Net 会话提供程序的所有信息。但是,在工作中,我们使用的是 MySql 会话提供程序,我对一个细节感到困惑:会话过期。

在那个 MSDN 页面上,它说:

ASPState 数据库包括一个 SQL Server 代理作业,该作业 定期(默认情况下,每 60 秒)调用存储过程 DeleteExpiredSessions 删除过期会话。

我对此有一些问题。我们正在使用 MySql,所以没有 SQL Server 代理来执行此操作。此外,我们的数据库实例似乎根本没有任何例程。作为记录,我们确实有autogenerateschema="true",所以如果它使用例程,我想它会生成它们。

有人可以解释一下 MySql 的会话状态存储和会话过期的细节吗?

【问题讨论】:

  • 您的过期会话真的被删除了吗?还是 MySql 表中只有很多旧会话?
  • 它按预期工作。过期的会话将在适当的时候被删除。
  • 我最好的猜测是 IIS 以某种方式调用了 MySqlSessionProvider,但我无论如何都没有测试它。
  • 请参阅 Implementing a Session-State Store Provider 上的 MSDN 文章,标题为“删除过期的会话存储数据”。如果你有 MySqlSessionProvider 的代码,也许你可以开始在那些地方寻找。
  • @jadarnel27 我没有代码。我们正在使用来自 MySql.Web.dll 的MySql.Web.SessionState.MySqlSessionStateStore

标签: asp.net mysql session-state


【解决方案1】:

从源代码来看,MySqlSessionStateStore 类似乎通过运行一个清除过期会话的计时器来处理它。

【讨论】:

    猜你喜欢
    • 2023-04-07
    • 2011-11-22
    • 2017-03-16
    • 2022-11-10
    • 2012-04-26
    • 2016-06-02
    • 2013-09-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多