可不可以设置session永不超时?如何设置那?

解决方案 »

  1.   

    设置web.config
        <sessionState 
                mode="InProc"
                stateConnectionString="tcpip=dbserver:42424"
                sqlConnectionString="data source=dbserver;Trusted_Connection=yes"
                cookieless="false" 
                timeout="20" 
        />
    设置 timeout
      

  2.   

    为什么要这样做,那万一用户关掉浏览器怎么办?这个是典型的内存泄露,那些已经关掉浏览器的session你要怎么清掉?要知道,当用户再次打开浏览器时,就是一次新的会话,会用新的session(sessionid不同)而不是原来的,如果你不让过期,那么,你的内存里会存N多无用的session~~~~
      

  3.   

    保存到数据库   xml文件 不能用不超时
    session在服务器上会丢失
      

  4.   

    用cookie代替sessionsession用不超时,应用迟早要崩溃
      

  5.   

    用cookie代替sessionsession用不超时,应用迟早要崩溃
    ______问一下楼上的,cookie也有超时的问题啊,我的客户开了浏览器,一直放在那里,过一天再访问这个网页,可都提示超时了,那怎么办啊?
      

  6.   

    好像ajax刷新session
    这个倒是个办法,不过总觉着ajax不太好用,会碰到奇怪的错误
      

  7.   

    session永不超时设置-1就好不过还有一个一定要保证,如果你的Session是放在SessionState里面的SessionState一定不能重启,重启就没了
    如果放在IIS,那么IIS也不能回收,一回收也没了所以想保证永不超时Session几乎无法办到,
    所以还是cookie超时设置成-1比较好
      

  8.   

    且不说,即使设置 TimeOut = 无穷大,是否真的可以不超时,因为Session有时候会莫名其妙丢失,
    Session 用不超时,应用迟早要崩溃!!假如你希望,用户保持浏览器打开着,即使不做任何请求,Session 就保持不超时,那么使用 
    AJAX 或者隐藏的iframe 做一个定时请求(刷新),以告诉服务器,浏览器打开着,
      

  9.   

    MSDN 说拉 HttpSessionState.Timeout 属性不能设置为超过 525,600 分钟(1 年)的值。
      

  10.   

    感谢大家的回答,使我弄明白一些问题,我先尝试用cookie实现吧,不行我再试试ajax结贴了,分总不涨所以少了点,大家谅解吧