ASP.net不会在正常回发时解除卸载

时间:2015-09-18 12:18:00

标签: asp.net session

如果我将当前页面保留在asp.net Web应用程序上,我希望所有会话都被销毁。为此我在Session.Abandon()事件上使用Page_Unload。但是,如果我使用正常的Button_Click进行回发,我不想发布此事件。

如果你能帮助我,那真是太棒了。

的Lingo

1 个答案:

答案 0 :(得分:1)

首先,您需要了解网络的运作方式。例如,当您访问stackoverflow.com时,您实际上是在看过去。您访问它的页面已在Web服务器上销毁。

基于该原则,当您使用Page_Unload或Session.Abandon时,如果您实际关闭浏览器,则不会发送任何Web服务器请求,因此Web服务器不知道(甚至不关心)关闭你的页面。

喜欢这样做

The page unload description act like this it's after being rendered it's had nothing with the close of the page.


"The Unload event is raised after the page has been fully rendered, sent to the client, and is ready to be discarded. 
At this point, page properties such as Response and Request are unloaded and cleanup is performed.'

参考(https://msdn.microsoft.com/en-us/library/ms178472.aspx

您需要使用javascript来执行此操作或尝试新的websocket以保持连接活动,服务器可以检查客户端是否丢失了与服务器的链接。