当登录时我用session保存用户信息,当成功时跳转到另一个页面,这时取session值的时候就出现未将对象引用到实例了,也就是我之前保存的session对象为Null,但是过了一会,再登录又正常了,偶尔会出现不起作用的时候,这是怎么回事啊?请教。。

解决方案 »

  1.   

    看看这个地方Web园,必须设置为1
      

  2.   

    用cookies或者sessionstate 实在不行存数据库
      

  3.   

    每个工作进程的会话信息都是唯一的
    具体参考http://www.lovebsd.com/index.php/2010/05/26/iis6-0-%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E6%B1%A0web%E5%9B%AD%E5%AF%BC%E8%87%B4session%E4%B8%A2%E5%A4%B1/
      

  4.   

    当成功时跳转到另一个页面跨域没iframe?
      

  5.   

    检查下代码看,有可能是哪个细节没有判断好,比如:当session不为空和为空那判断是否有误
      

  6.   

    对session操作前判断下
    if (Session["User"] != null)
    {
    ...
    }
      

  7.   

    "也就是我之前保存的session对象为Null,但是过了一会,再登录又正常了,偶尔会出现不起作用的时候"你应该知道Session是会丢失的,所以最好的方式是判断Null,如果是Null,告诉用户登录已经超时,请重新登录.然后跳转到登陆页面.
      

  8.   

    我在跳转后的页面有判断session是否为null,如果为null就又跳到登录页了,关键是,根本就没保存上用户的信息,即使丢失,也得给我几分钟的时间啊,根本就没有登录成功,所以只能一直登录登录
      

  9.   

    在本地也出现这种情况,是放到服务器上了,有时候会出现上述的情况,登录不上(用户信息是正确的,也正确跳转到相应的页面了,就是session这时是null空的)
      

  10.   

    尝试把Session放置到SQL Server上看看,这种情况还是不是时常出现.
      

  11.   

    其实登录信息最好还是别放session里。。现在有些ie跳转会删除session。。然后你就是看看会不会和你的数据库锁有关系。。是不是那个登的用户在登前那个账户就锁定了。。然后过会就放开了
      

  12.   


    在繁忙的服务器上(比如租的空间,一台服务器上有上百个网站),并且系统管理员比较“公平”地保证所有网站都平稳运行,那么应用程序可能最多每隔十几分钟就被回收到池子里一次。此时让用户总是去重新登录,就等于砸了网站自己的招聘了。所以让用户重新登录是非常不好的、只在学生课堂上才看似合理的解决方案。这个问题无法解决。因为应用程序重启是asp.net和IIS的机遇设计而故意而为的,是服务器系统自我维护的措施。因此#3楼说得很对,要么不使用Session集合,要么(假设你拥有服务器)改掉应用程序状态管理的InProc模式。在不使用Session集合时,那么Session数据随便丢失(SessionID并没有丢失),也不会导致让用户去没完没了地重新登录的尴尬局面。
      

  13.   

    比如假设你基于IIS来测试程序,那么你可以设置它每隔1分钟回收一次程序池,或者设置内存占用达到100M即回收,或者设置一个网站CPU使用率达到10%即回收,或者连接数50个即回收,或者运行时重新保存一下web.config文件,或者运行时重新保存一下bin目录、app_code目录下的文件..........等等条件(引用程序自身bug也会让系统重启),你都可以测试来你的程序能不能应付Sessin丢失问题。不应付Session丢失的aps.net程序,它想的也未免过于简单了。