浏览器关闭后会发生什么

时间:2014-08-24 05:49:57

标签: asp.net

我们知道,当我们关闭浏览器时,会话会被破坏。

请帮我解决以下问题。

假设我已点击我的注册页面上的提交按钮,并在内部调用SQL存储过程,这需要更多时间来执行..

同时如果我关闭浏览将会发生什么?

  1. 我的sql连接是否仍然可用?如果是,那么在关闭浏览器之后,我的商店程序仍处于执行模式吗?

  2. 什么时候会话被破坏?

  3. 想了解更多有关此生命周期的信息,谢谢

1 个答案:

答案 0 :(得分:2)

首先考虑到这一点。

  1. 用户浏览器上的会话与Cookie 相关联。
  2. 会话有一段时间。
  3. 如果这两个中的任何一个消失了,那么会话就会消失,所以让我们分析一下吧。

    曲奇

    如果cookie是session cookie(临时),那么当用户关闭浏览器时它就会消失,如果它不是临时的,那么当它到期时就消失了,或者当然如果用户清除它,或者如果用户处于私人模式甚至没有保存。

    因此,当与会话相关的Cookie消失时,您将失去会话

    即使浏览器由于其他原因无法读取会话cookie,会话也可能丢失。

    服务器上的会话数据

    与cookie连接的会话是存在于服务器上的数据字典。 会话超时,因此如果用户在此时间内未更新对服务器的调用,则服务器会终止服务器上的会话数据。

    另请注意,会话可以在SQL Server上提供,也可以在后台运行的服务中提供,并将该数据保存在内存中。

    如果您将会话数据保存在内存中,那么它们甚至可能在会话超时之前从IIS回收中丢失,也可能因为其原因而清除它的服务本身丢失。

    服务器端超时

    如果您调用了长时间功能,并且用户结束了他们的连接,那么该过程将继续运行,直到任何一个结束或者超时。如果您的进程需要10分钟执行,那么这可能不太安全,即使用户仍然连接,您可能会超时并且永远无法正确结束。如果你说几秒钟,那么相对正常,即使用户关闭浏览器端,也会执行该程序。

    检查页面的超时时间和sql server端的超时时间。如果您在连接用户时结束,如果用户在中间关闭连接,您将结束相同的操作。

    请记住,在一个繁重的多用户呼叫情况下,您可能会遇到会话锁的问题,请阅读此q / a ASP.NET Server does not process pages asynchronously

    因此,请注意不要超过几秒钟的程序。

    最后的话

    最安全的方式"在一段时间内没有丢失你的会话是使用良好的设置cookie,这不是暂时的,并保持他们的生活几个月(谷歌保持他们的cookie两年),并使用SQL Server来保存你的会话数据。

    更多详情请阅读:
    ASP.NET State Management Recommendations
    Session would not retain values and always return null
    Keeping a related ASP.NET application's session alive from another ASP.NET application
    ASP.NET Session State Overview