网上有些资料说是关闭浏览器后就失效,不过经实践得出的结论是
关闭IE是不执行Session_End事件的,那么SESSION在关闭浏览器之后会不会马上呢,还是等到有效时间到了才失效?

解决方案 »

  1.   

    关闭浏览器不会马上失效,需要有一段时间没操作过才失效,默认的timeout时间是20分钟。
      

  2.   

    关闭浏览器session就失效了  但不会执行Session_End事件  
    手动结束当前会话  Session.Abandon() 会执行 Session_End事件
      

  3.   

    手动结束当前会话 Session.Abandon() 会执行 Session_End事件,这是正确的,我也验证过了
      

  4.   


    等过了(而不是到了)有效时间之后才会失效。但是尽管没有失效,你也访问不到了,因为浏览器默认地不会以上一次关闭之前的那个会话来访问服务器,而是会让服务器重新创建一个新的会话。另外,asp.net程序的session问题不是在于失效,而是在于(在真正的生产服务器上)频繁丢失。眼睛盯着前者,解决不了后者。相反地,彻底避免后者,可以避免前者。
      

  5.   

    在InProc会话方式下,假设一个人发呆20分钟,但是网站后台没有收到任何一个访问(包括自己这个会话的访问),这个会话的Session集合数据也并不失效。只有下一个访问时,服务器才会去清理之前失效的Session集合,这时会触发那个事件。