浏览器断开连接后,从Web应用程序清理数据库

时间:2015-03-13 14:21:18

标签: c# asp.net

我想在会话期间创建临时表。当会话结束(用户结束浏览器连接)时,我想删除临时表。所以我需要能够调用一个函数来读取保存在Session["temp_tables"]中的表名并查询数据库以删除它们。

2 个答案:

答案 0 :(得分:1)

会话可能因各种原因而结束,这些原因不一定与用户完成对您网站的使用相关联(即超时,机器重启等)。一般来说,我通常会避免使用ASP.NET会话状态。

可能有两种选择:

  1. 让用户告诉您他们何时完成数据(保存的“会话”)。这具有易于实施和优化的优点。允许用户稍后离开\返回并继续他们离开的地方。

  2. 表格中有“上次使用”值设置一个计划任务来清理陈旧数据。

答案 1 :(得分:0)

在global.asax文件中使用会话结束事件。

void Session_End(Object sender, EventArgs E) {
    //remove temporary table
}

这将在用户会话超时后运行,而不一定在他们关闭浏览器窗口时运行。