Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/304.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.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
C# 如何在按标题栏关闭按钮asp.net c时捕获会话结束#_C#_Asp.net_Sql Server_Session State_Sessionend - Fatal编程技术网

C# 如何在按标题栏关闭按钮asp.net c时捕获会话结束#

C# 如何在按标题栏关闭按钮asp.net c时捕获会话结束#,c#,asp.net,sql-server,session-state,sessionend,C#,Asp.net,Sql Server,Session State,Sessionend,我对asp.net web应用程序有一些问题。 使用sql server会话状态的Web应用程序。 注销事件可以删除会话,但按标题栏“关闭”按钮可删除会话。 按标题栏关闭按钮时可以控制哪些事件。 我了解到当按下标题栏关闭按钮时,会话结束事件可以捕获。 但无法使用sql server会话状态引发会话结束事件。 如何捕获?关闭浏览器不会结束服务器上的会话,服务器无法区分打开或关闭的浏览器,它只是接收一个请求,然后发送一个响应,然后坐在那里等待另一个请求。在没有请求的情况下经过一定时间后,会话将超时,

我对asp.net web应用程序有一些问题。 使用sql server会话状态的Web应用程序。 注销事件可以删除会话,但按标题栏“关闭”按钮可删除会话。 按标题栏关闭按钮时可以控制哪些事件。 我了解到当按下标题栏关闭按钮时,会话结束事件可以捕获。 但无法使用sql server会话状态引发会话结束事件。
如何捕获?

关闭浏览器不会结束服务器上的会话,服务器无法区分打开或关闭的浏览器,它只是接收一个请求,然后发送一个响应,然后坐在那里等待另一个请求。在没有请求的情况下经过一定时间后,会话将超时,会话结束事件将运行

如果要结束会话,必须在关闭浏览器时向服务器发回某种ajax请求,以便服务器知道如何结束会话

编辑

您可以使用jQuery执行类似的操作

$(window).unload(function() {
  $.post('someurl');
});
将someurl替换为web服务、处理程序或mvc控制器操作的url,或类似的通知服务器浏览器已关闭的url

那么服务器端就可以了

Session.Abandon();