Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.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# 会话\浏览器关闭时的结束代码_C#_Asp.net_Session - Fatal编程技术网

C# 会话\浏览器关闭时的结束代码

C# 会话\浏览器关闭时的结束代码,c#,asp.net,session,C#,Asp.net,Session,我有一个方法需要在会话结束时运行。有什么方法可以确保在用户关闭浏览器时代码运行?这可能是一个dup queston。我看到一个响应在调用ajax卸载之类的,但我不希望每次用户离开页面时,当他们关闭浏览器时,都触发这个响应 谢谢, ~ck简单回答:你无法控制用户的浏览器。您提到的AJAX解决方案是在没有插件/自定义客户端的情况下可以实现的最接近的解决方案。想象一下,某个网站可以跟踪您每次打开和关闭浏览器窗口的情况。你不认为这会是一个隐私问题吗 真相在于HTTP的无状态特性。一旦Web服务器完成向客

我有一个方法需要在会话结束时运行。有什么方法可以确保在用户关闭浏览器时代码运行?这可能是一个dup queston。我看到一个响应在调用ajax卸载之类的,但我不希望每次用户离开页面时,当他们关闭浏览器时,都触发这个响应

谢谢,
~ck

简单回答:你无法控制用户的浏览器。您提到的AJAX解决方案是在没有插件/自定义客户端的情况下可以实现的最接近的解决方案。想象一下,某个网站可以跟踪您每次打开和关闭浏览器窗口的情况。你不认为这会是一个隐私问题吗


真相在于HTTP的无状态特性。一旦Web服务器完成向客户端发送响应,它就不存在了。在那之后,您可以依赖的只是一个客户端脚本,它只会因为客户端需要而执行;它可以很容易地选择不运行脚本。

简单的回答:您无法控制用户的浏览器。您提到的AJAX解决方案是在没有插件/自定义客户端的情况下可以实现的最接近的解决方案。想象一下,某个网站可以跟踪您每次打开和关闭浏览器窗口的情况。你不认为这会是一个隐私问题吗


真相在于HTTP的无状态特性。一旦Web服务器完成向客户端发送响应,它就不存在了。在那之后,您可以依赖的只是一个客户端脚本,它只会因为客户端需要而执行;而且它可以很容易地选择不运行脚本。

会话结束不可靠。不管你做什么

会话\u end仅在使用进程内会话时激发。如果您使用的是会话状态服务器或SQL会话,则不会触发会话结束

使用进程内会话时,只有在会话中存储了某些内容时,才会触发会话_end。如果您不使用会话,会话结束将永远不会启动


如果您正在使用会话,并且用户关闭浏览器,则会话结束将在用户会话超时时触发。虽然它将具有与原始会话相同的一些设置,但此事件不会绑定到浏览器,因为它是检测会话超时并启动会话结束进程的工作进程。

会话结束不可靠。不管你做什么

会话\u end仅在使用进程内会话时激发。如果您使用的是会话状态服务器或SQL会话,则不会触发会话结束

使用进程内会话时,只有在会话中存储了某些内容时,才会触发会话_end。如果您不使用会话,会话结束将永远不会启动


如果您正在使用会话,并且用户关闭浏览器,则会话结束将在用户会话超时时触发。虽然它将具有与原始会话相同的一些设置,此事件不会绑定到浏览器,因为它是检测会话超时并启动会话结束进程的工作进程。

ASP.NET会话状态与用户何时或是否关闭浏览器无关。另外请注意,会话结束只会在Proc模式下启动ASP.NET会话状态与用户何时或是否关闭浏览器无关关闭浏览器。另请注意,会话_End将仅在Proc模式下启动。如果是,则它不在浏览器和服务器之间。一旦会话结束,我们可以依靠会话结束在不久的将来的某个地方启动。所以,如果我有一个计数器的静态int,我可以计算有多少会话仍然处于活动状态。该计数器通常位于较高的一侧。它将包括来自已关闭浏览器但其会话尚未超时的用户的会话。如果您可以,请从高端进行解释。此外,我目前正在我的网站上建立一个聊天应用程序,并希望有一个静态的用户列表,以便我可以检索所有的姓名和ID。因此,稍晚一点知道用户已注销并不是那么糟糕。不?博格坎普,听起来你好像把课时结束当作注销。它的设计并非如此;这是非常不同的事情。在网上搜索session_end not firing,了解问题所在。是否知道用户已经注销是一个取决于使用情况的问题。鉴于此,在我看来,在聊天应用程序中这是非常糟糕的。我从来没有计划过。我只是在想,如果用户刚刚关闭浏览器,还没有注销,我需要把他从在线用户列表中删除。这样,如果会话仍然处于活动状态,我可以在会话结束时进行检查,如果是,我只需转到列表并使用会话[accountId]将其设置为脱机。如果是,则它不在浏览器和服务器之间。一旦会话结束,我们可以依靠会话结束在不久的将来的某个地方启动。所以,如果我有一个计数器的静态int,我可以计算有多少会话仍然处于活动状态。该计数器通常位于较高的一侧。它将包括来自已关闭浏览器但其会话尚未超时的用户的会话。如果您可以,请从高端进行解释。此外,我是
目前正在我的网站上建立一个聊天应用程序,并希望有一个静态的用户列表,以便我可以检索所有的姓名和ID。因此,稍晚一点知道用户已注销并不是那么糟糕。不?博格坎普,听起来你好像把课时结束当作注销。它的设计并非如此;这是非常不同的事情。在网上搜索session_end not firing,了解问题所在。是否知道用户已经注销是一个取决于使用情况的问题。鉴于此,在我看来,在聊天应用程序中这是非常糟糕的。我从来没有计划过。我只是在想,如果用户刚刚关闭浏览器,还没有注销,我需要把他从在线用户列表中删除。这样,如果会话仍然处于活动状态,我可以在会话结束时进行检查,如果仍然处于活动状态,我只需转到列表并使用会话[accountId]将他设置为脱机