我明明设置 Session.Timeout = 1440; 可是Session的保存时间还是20来分钟怎么回事呢??

解决方案 »

  1.   

    关键是服务器要设置啊 光在代码里面设置没有用的,
    你这样:先不设置 
    用response.write session.timeout看看服务器默认的值是多少?
      

  2.   

    可能是服务器那里IIS作了设置,你这里就没用了,换cookiess吧
      

  3.   

    好像有好几个地方可以配置:
    1\代码配置
    2\IIS配置
    3\Web.config配置
    不妨分别设置不同的数据,然后在代码里输出其设置,看到底是哪个配置优先.
      

  4.   

    设IIS的,webconfig,代码一块设了
      

  5.   

    web.config文件中没有设置任何~~~
      

  6.   

    IIS那里有一个应用程序池  点属性 把那里的默认20分钟回收去掉  同时去掉其它回收的就可以了
      

  7.   

    好人做到底了---------------------------------右键“我的电脑”-“管理”-展开IIS---找到应用程序池:应用程序池-----DefaultAppPool---属性----点回收选项卡---
    去掉回收工作进程(分钟)前面的对勾,去掉回收工作进程(请求数目)前面的对勾。
    只勾选在下列时间回收工作进程,添加一个相对访问量少的时间。
    然后点性能选项卡,去掉在空闲此段时间后关闭工作进程(分钟)前面的对勾。
    确保WEB园中最大工作进程数为 1。最后点确定。
      

  8.   

    当服务器压力大的时候服务器随时可能收回SessionSession超时有时不准的
      

  9.   

    可是 csdn 的就没事···我挂一天都没事
      

  10.   


    所以说,开发asp.net程序的时候要避开 Session集合,不要使用它。Sesson中的SessionID是不会“丢失的”,除此以外都会“丢失”,编程中不要使用Session集合保存数据以免自己给自己设置陷阱。
      

  11.   

    嗯,还是要进一步说明白一点:只有当你至少往Session集合中放入一个东西之后,SessionID才会真正不变,否则asp.net会每一次都重新设置一个随机初始值(我觉得asp.net这一点不太贴心)。因此,为了使用SessionID,你需要胡乱往Session集合里边放入一个变量。例如我就在global.asax的Session_Start中写一句:    HttpContext.Current.Session["a"] = 1;除此之外,不使用Session集合,那么你就要想办法把持久化数据自己保存起来。例如可以保存在数据库中,或者是xml文件中。SessionID用来作为查询索引之一。
      

  12.   

    session回过期啊 不如存到数据库啊
      

  13.   

    看一下你的IIS里设置的是多少