session值有时丢失 当登录时我用session保存用户信息,当成功时跳转到另一个页面,这时取session值的时候就出现未将对象引用到实例了,也就是我之前保存的session对象为Null,但是过了一会,再登录又正常了,偶尔会出现不起作用的时候,这是怎么回事啊?请教。。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 看看这个地方Web园,必须设置为1 用cookies或者sessionstate 实在不行存数据库 每个工作进程的会话信息都是唯一的具体参考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/ 当成功时跳转到另一个页面跨域没iframe? 检查下代码看,有可能是哪个细节没有判断好,比如:当session不为空和为空那判断是否有误 对session操作前判断下if (Session["User"] != null){...} "也就是我之前保存的session对象为Null,但是过了一会,再登录又正常了,偶尔会出现不起作用的时候"你应该知道Session是会丢失的,所以最好的方式是判断Null,如果是Null,告诉用户登录已经超时,请重新登录.然后跳转到登陆页面. 我在跳转后的页面有判断session是否为null,如果为null就又跳到登录页了,关键是,根本就没保存上用户的信息,即使丢失,也得给我几分钟的时间啊,根本就没有登录成功,所以只能一直登录登录 在本地也出现这种情况,是放到服务器上了,有时候会出现上述的情况,登录不上(用户信息是正确的,也正确跳转到相应的页面了,就是session这时是null空的) 尝试把Session放置到SQL Server上看看,这种情况还是不是时常出现. 其实登录信息最好还是别放session里。。现在有些ie跳转会删除session。。然后你就是看看会不会和你的数据库锁有关系。。是不是那个登的用户在登前那个账户就锁定了。。然后过会就放开了 在繁忙的服务器上(比如租的空间,一台服务器上有上百个网站),并且系统管理员比较“公平”地保证所有网站都平稳运行,那么应用程序可能最多每隔十几分钟就被回收到池子里一次。此时让用户总是去重新登录,就等于砸了网站自己的招聘了。所以让用户重新登录是非常不好的、只在学生课堂上才看似合理的解决方案。这个问题无法解决。因为应用程序重启是asp.net和IIS的机遇设计而故意而为的,是服务器系统自我维护的措施。因此#3楼说得很对,要么不使用Session集合,要么(假设你拥有服务器)改掉应用程序状态管理的InProc模式。在不使用Session集合时,那么Session数据随便丢失(SessionID并没有丢失),也不会导致让用户去没完没了地重新登录的尴尬局面。 比如假设你基于IIS来测试程序,那么你可以设置它每隔1分钟回收一次程序池,或者设置内存占用达到100M即回收,或者设置一个网站CPU使用率达到10%即回收,或者连接数50个即回收,或者运行时重新保存一下web.config文件,或者运行时重新保存一下bin目录、app_code目录下的文件..........等等条件(引用程序自身bug也会让系统重启),你都可以测试来你的程序能不能应付Sessin丢失问题。不应付Session丢失的aps.net程序,它想的也未免过于简单了。 一个关于枚举的单元测试问题。。 label顯示換行的問題 关于Ajax检测用户名已测试成功(可惜无法添加新用户了) 今天不解决,我不睡啦,怎么在服务器端获得联动DROPDOWNLIST的值 大家的用户权限是什么设计的呢 请问各位大侠,生成预览的最好方法 为什么我连接数据库的时候出错:未在本地计算机上注册“Microsoft.Jet.4.0”提供程序 TEXBOX的一个问题 如何获取sql2000数据库中binary字段的内容?急!急!急! asp.net中如何通过 WmiMonitorID查询显示器序列号? 关于网站压力测试问题 .net 怎么导入导出Excel?急
具体参考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/
if (Session["User"] != null)
{
...
}
在繁忙的服务器上(比如租的空间,一台服务器上有上百个网站),并且系统管理员比较“公平”地保证所有网站都平稳运行,那么应用程序可能最多每隔十几分钟就被回收到池子里一次。此时让用户总是去重新登录,就等于砸了网站自己的招聘了。所以让用户重新登录是非常不好的、只在学生课堂上才看似合理的解决方案。这个问题无法解决。因为应用程序重启是asp.net和IIS的机遇设计而故意而为的,是服务器系统自我维护的措施。因此#3楼说得很对,要么不使用Session集合,要么(假设你拥有服务器)改掉应用程序状态管理的InProc模式。在不使用Session集合时,那么Session数据随便丢失(SessionID并没有丢失),也不会导致让用户去没完没了地重新登录的尴尬局面。