Session_OnEnd事件触发时,Session.SessionID是否还存在?

cheng_feng001 2007-09-07 09:47:40
我在用户登录时将SessionID记录到数据库用户表中,并将用户是否在线字段设置为在线;当Session_OnEnd事件触发时,希望能通过SessionID找到相应的记录,并将该记录用户是否在线字段设置为离线。global.asa文件中的程序如下:
Sub Session_OnEnd
Set cls=Server.CreateObject("mydll.db")
cls.Execute("UPDATE Users SET IsOnline='0' WHERE SessionID="&Session.SessionID)
Set cls=Nothing
End Sub

但是,似乎并没有执行。而如果我把Session.SessionID换成某一具体的UserID值时,可以成功修改该用户记录。所以,我怀疑此时SessionID已经被释放了。我的理解对吗?如果是的话,那有什么办法在用户帐号过期时找到该用户记录并进行操作呢?
...全文
152 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
cheng_feng001 2007-09-07
  • 打赏
  • 举报
回复
没人理,我自己来吧。问题找到了,不是SessionID的问题,而是在Session_OnEnd事件中不能使用DLL类库的原因,换成通过创建Connection对象连接数据库就可以了。另外,在Session_OnStart事件中可以使用DLL类库。这是我实践的,但是理论上为什么,我还没有找到出处。希望为有同样疑惑的朋友一点借鉴吧。

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧