我试过在aspx文件里设置Session.Timeout ,或者web.config设置sessionState 的timeout,我在本机测试有效,但是在上传到服务器上都没用,都是1分钟就超时,而且我用Response.Write(Session.Timeout ) 值是20,可总是一分钟就超时,我不断刷新也都是一分钟超时

解决方案 »

  1.   

    http://www.cnblogs.com/zhw511006/archive/2009/10/10/1580029.html
      

  2.   

    你是怎么判断session超时的,会不会判断方法的问题?
      

  3.   

    你的估计不是session超时,而是程序超时,一个语句不能无限长时间运行的,默认超了一分钟服务器就会中断,常见的比如访问数据库获取数据,弱国一分钟还没有查询完就会自动中断
      

  4.   

    你可以配置一下把session存储到服务器的数据库上
    系统默认的那种是会游戏不太稳的,有回收
      

  5.   

    对比一下服务器上和本地的IIS的设置吧,session回收时间什么的。造成session丢失的原因很多:
    1.timeout到时了
    2.手动清除(logout)
    3.服务器把session回收了
    4.其他的,比如改动bin文件夹内容
      

  6.   


    <sessionState mode="StateServer" cookieless="false" timeout="99999"/>
    开启asp.net_state服务 一直写了好几年  无压力 不过期
      

  7.   

    只要是一口一个“超时、超时”的,就无法真正发现问题机制。asp.net程序以及IIS,会把回收做为清理应用环境的正常维护做法。例如服务商为了用同一台机器多赚钱,原本应该只卖20个网站,可是他要卖200个,于是可能就设置为CPU占用率不能超过5%,或者内存使用率不能超过20%,或者IIS连接数不能超过150个,否则就会回收应用程序。这时候你的asp.net程序就会经常丢失一切static变量、Session集合数据、Application集合数据等等。设计程序时可以避免使用Session集合,仅使用SessionID就够了(因为SessionID不会丢失)。
      

  8.   

    你的应用程序抛出的、未在Global.asax等UI控制层中捕获的异常,也会造成asp.net应用程序随后被重启。这样看似asp.net程序一直在持续运行着,其实它是不断重启着!即使是微软的工程师,也根本不知道InProc状态管理模式下的asp.net程序有多少种情况会重启。例如你的程序在网站下、app_data目录以外,创建了一个目录,这时候同一个asp.net程序的其它会话就在重启了的应用程序中执行了(当然当前的会话还是会在当前应用程序域中执行完,然后杀掉当前应用程序域)。总之如果没有这种机制,asp.net早就崩溃了。它就是靠不断重启,来保证系统稳定性的。