【发布时间】: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