本帖最后由 conni1521 于 2009-11-19 15:18:51 编辑

解决方案 »

  1.   

    创建目录会导致应用程序池重启的,session所以就没了。
    重新设计一下登陆流程吧。
      

  2.   

    session 持久化到数据库就不会丢失了,
    session的sessionId保存在客户端的cookie中,所以设置下cookie.Domain,有时候是这个原因造成的
      

  3.   

    能说的具体一些吗?我asp.net不太熟
      

  4.   

    我的session mode 已经设成StateSever了,为什么还会丢失呢?
      

  5.   

    如果把session存到DB里,checksession是否过期就没有用了,必需Checksession是否过期,这一步不能省略~~
      

  6.   

    先说原因.由于session是存在你的内存里的.session是先找一个空的内存区域写进去.然后保存的生命周期是在config里设置的。默认是20分钟.当有新的数据需要写如内存的时候,则先找空内存区域.如果没有空的内存区域的时候.就会找等级比较低的内存空间,替换掉以前的数据.当你内存的吞吐量很大的时候,session无故丢失。是特正常的事解决办法有以下几种
    1:加内存条.可以不可预知的加长你的session保存时间.也许是3分钟.也许是20分钟。不确定.
    2:专门建立session服务器.把session放到专门的地方.这样时间会更有保证一点.但还是不能确保一定是20分钟.
    3:用数据库存,就如楼上所说的.
    如果把session存到DB里,checksession是否过期就没有用了,必需Checksession是否过期,这一步不能省略~~
    4:用cookie加密存.把密钥放服务器上。每次用的时候解密一下
    5:如果你只在登陆时候存用户信息.建议用.net的form认证.它的原理如解决办法4.但是封装好了的.直接用就可以了.再次感慨csdn上没有高手了。这么简单的问题都没人回答了。要5年前.这个问题高手都不好意思回答.怕抢了小号的分.