Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
asp.net中的会话处理_Asp.net - Fatal编程技术网

asp.net中的会话处理

asp.net中的会话处理,asp.net,Asp.net,我正在尝试了解当用户离开我的站点时如何销毁ASP.NET会话。我正在使用Global.ascx应用程序文件并使用session\u end event。单击“注销”按钮时,该操作正常。但当我直接关闭浏览器时,它在20分钟后不使用全局文件。我在web.conig文件中使用了 请帮帮我 Augustine您可以通过调用会话。放弃()会话超时来终止会话。会话超时定义了某个会话在空闲时间后被销毁的时间 如果希望对会话进行更多控制,则需要使用SQLServer模式、状态服务器模式或自定义模式 我的意思是,

我正在尝试了解当用户离开我的站点时如何销毁ASP.NET会话。我正在使用Global.ascx应用程序文件并使用session\u end event。单击“注销”按钮时,该操作正常。但当我直接关闭浏览器时,它在20分钟后不使用全局文件。我在web.conig文件中使用了

请帮帮我

Augustine

您可以通过调用
会话。放弃()
会话超时来终止会话。会话超时定义了某个会话在空闲时间后被销毁的时间

如果希望对会话进行更多控制,则需要使用SQLServer模式、状态服务器模式或自定义模式

我的意思是,因为,例如,SQLServer模式将会话存储在标准SQLServer表中,因此,您可以实现一些SQLServer作业,或者在Windows或某些Windows服务中安排一些任务,以便根据需要清理会话

顺便说一句,您可能需要知道,如果使用InProc,您的会话可能会被破坏,因为IIS回收了应用程序池,或者服务器完全重新启动。这并不是结束会话,因此appropiate事件和处理程序在这种情况下不起作用

我重复一遍,如果你需要一个更好的会话管理模式,就像我建议你的那样


编辑:

查看此页:


您将学习如何更好地处理会话超时,因为会话过期时不会调用会话结束,而是在调用“会话.放弃”时调用。当访问者“导航离开”或“关闭浏览器”时,浏览器不会向网站发送信号。因此asp.net(或任何其他服务器端技术)不能对此做出反应来破坏会话


这就是会话超时工作的原因:如果用户没有在超时时间内执行请求,那么他应该已经放弃了会话,即使他只是在阅读该页面20多分钟。

创建一个调用会话的新页面。在页面加载时结束并关闭页面(Window.Close())使用RegisterClientScriptBlock。调用此新页面窗口。使用Javascript卸载当前页面时的位置。

您可以使用SQLServer模式而不是inProc模式读取。

我使用Session.Discard and clear(),但我的问题是,如果关闭浏览器,它将不起作用……谢谢。但我还没有编写本教程!:D