我目前正在使用ASP.NET MVC5创建一个网站,我需要跟踪活动会话(或者更正确,每个用户会话的单个值)
我环顾四周,人们似乎为此推荐了Session_end(),但所有这些建议都伴随着人们说session_end不可靠。
我需要跟踪这一点的原因是用户收到一个唯一的文件夹来上传文件。当用户完成该过程时,将删除此文件夹,但如果网站关闭而未完成,则该文件夹仍然存在 我目前将值保存在会话变量中(即使未登录,用户也应该获取文件夹)并且会话到期时丢失。会话过期后,应该删除该文件夹,因为没有用户可以再访问它(以节省存储空间)。
我可以访问数据库,以防有助于解决方案。
答案 0 :(得分:1)
Session事件确实不可靠。根据经验,使用Session几乎不是一个好主意。
现在,如果我必须从头开始满足您的要求,我会选择能够主动监控Web应用程序上活动用户连接的内容。
幸运的是,有一个工具可以做到这一点以及更多:SignalR。它是一个ASP.NET组件,允许创建响应式应用程序,其中多个会话可以通过服务器相互通信。聊天,仪表板和网页游戏等应用程序是该库的常见应用程序。
我建议你看看它并进行一些实验,它有你解决当前问题所需的一切。