asp.net中的会话处理
我正在尝试了解当用户离开我的站点时如何销毁ASP.NET会话。我正在使用Global.ascx应用程序文件并使用session\u end event。单击“注销”按钮时,该操作正常。但当我直接关闭浏览器时,它在20分钟后不使用全局文件。我在web.conig文件中使用了asp.net中的会话处理,asp.net,Asp.net,我正在尝试了解当用户离开我的站点时如何销毁ASP.NET会话。我正在使用Global.ascx应用程序文件并使用session\u end event。单击“注销”按钮时,该操作正常。但当我直接关闭浏览器时,它在20分钟后不使用全局文件。我在web.conig文件中使用了 请帮帮我 Augustine您可以通过调用会话。放弃()会话超时来终止会话。会话超时定义了某个会话在空闲时间后被销毁的时间 如果希望对会话进行更多控制,则需要使用SQLServer模式、状态服务器模式或自定义模式 我的意思是,
请帮帮我
Augustine您可以通过调用
会话。放弃()
会话超时来终止会话。会话超时定义了某个会话在空闲时间后被销毁的时间
如果希望对会话进行更多控制,则需要使用SQLServer模式、状态服务器模式或自定义模式
我的意思是,因为,例如,SQLServer模式将会话存储在标准SQLServer表中,因此,您可以实现一些SQLServer作业,或者在Windows或某些Windows服务中安排一些任务,以便根据需要清理会话
顺便说一句,您可能需要知道,如果使用InProc,您的会话可能会被破坏,因为IIS回收了应用程序池,或者服务器完全重新启动。这并不是结束会话,因此appropiate事件和处理程序在这种情况下不起作用
我重复一遍,如果你需要一个更好的会话管理模式,就像我建议你的那样
编辑: 查看此页:
您将学习如何更好地处理会话超时,因为会话过期时不会调用会话结束,而是在调用“会话.放弃”时调用。当访问者“导航离开”或“关闭浏览器”时,浏览器不会向网站发送信号。因此asp.net(或任何其他服务器端技术)不能对此做出反应来破坏会话
这就是会话超时工作的原因:如果用户没有在超时时间内执行请求,那么他应该已经放弃了会话,即使他只是在阅读该页面20多分钟。创建一个调用会话的新页面。在页面加载时结束并关闭页面(Window.Close())使用RegisterClientScriptBlock。调用此新页面窗口。使用Javascript卸载当前页面时的位置。您可以使用SQLServer模式而不是inProc模式读取。我使用Session.Discard and clear(),但我的问题是,如果关闭浏览器,它将不起作用……谢谢。但我还没有编写本教程!:D