我想在会话期间创建临时表。当会话结束(用户结束浏览器连接)时,我想删除临时表。所以我需要能够调用一个函数来读取保存在Session["temp_tables"]
中的表名并查询数据库以删除它们。
答案 0 :(得分:1)
会话可能因各种原因而结束,这些原因不一定与用户完成对您网站的使用相关联(即超时,机器重启等)。一般来说,我通常会避免使用ASP.NET会话状态。
可能有两种选择:
让用户告诉您他们何时完成数据(保存的“会话”)。这具有易于实施和优化的优点。允许用户稍后离开\返回并继续他们离开的地方。
表格中有“上次使用”值设置一个计划任务来清理陈旧数据。
答案 1 :(得分:0)
在global.asax文件中使用会话结束事件。
void Session_End(Object sender, EventArgs E) {
//remove temporary table
}
这将在用户会话超时后运行,而不一定在他们关闭浏览器窗口时运行。