公司系统 经常出现 session 丢失问题,以前都是用cookie 因为是2个项目在一个目录下,可能cookie命名有问题老冲突 必须 删除cookie才行,后来把其中一个项目全 改成session了 结果会出现丢失现象。而且我发现好像都是打开新窗口的时候丢失 直接跳转没事~~ 

解决方案 »

  1.   

    设置session inproc -->stateserver .开启asp.net state服务不要将session存储在IIS进程内
      

  2.   

    一:有些杀病毒软件会去扫描您的Web.Config文件,那时Session肯定掉,这是微软的说法。 
    二:程序内部里有让Session掉失的代码,及服务器内存不足产生的。 
    三:程序有框架页面和跨域情况。 第一种解决办法是:使杀病毒软件屏蔽扫描Web.Config文件(程序运行时自己也不要去编辑它) 
    第二种是检查代码有无Session.Abandon()之类的。 
    第三种是在Window服务中将ASP.NET State Service 启动。 今天遇到asp.net session丢失了,然后又回来了,session里存储的是用户信息,最后导致每次刷新是不同的用户或是未登录状态。很让人吐血的问题。 
    搞了2天没搞出来,最后重写了验证机制,都放在了cookie里了,session不敢用了。 
    今天发现,问题是由于设置iis6的 应用程序池内的性能内的最大web进程数导致的,由于session默认是存放在web进程里的,进程开多了,导致session不能共享,每次刷新又由不同的进程来处理,所以就导致刷新出来不同的用户,前提是在本机登录过这些用户。 
    解决方法可以用stateserver或者用sqlserver模式来存储session。 
    由于google没搜到类似问题,所以这里拿出来说一下这个让我头痛了2天,最后修改了n多页面的问题。 
      

  3.   

    http://tonyqus.cnblogs.com/archive/2006/04/19/378904.html
      

  4.   

    webconfig文件里<system.web>节下加上
    <sessionState mode="StateServer" stateConnectionString="tcpip=127.0.0.1:42424" cookieless="false" timeout="20"/>
    并且在服务里把asp.net state服务开启
      

  5.   

    session服务器端
    cookie客户端
    一个是密文
    一个是明问
      

  6.   

    及时清空释放资源session失效时间设置大点再就是跳转页面操作尽量少用。response.redirect();
      

  7.   

    Session丢失跟服务器设置和浏览器设置都有关系,采用Cookie是比较好的方法。Cookie冲突,你可以采用的 Cookie名称,改成Session的工作量更大
      

  8.   


    或者你把session存储在专门的session数据库服务器里面。
      

  9.   

    asp.net state服务  每次重启服务器的话 都要重新开启吗?
      

  10.   

    在我很复杂的全国连锁企业管理系统中,cookie使用也没有超过10个的时候。我想你们是不是又滥用了cookie了?(没有办法,让程序员当项目经理就会这样,他自己尚且不能架构软件又怎能控制好其它程序员去随意“设计”?)实际上不论cookie还是cache的key,都需要有个命名规范(1分钟制定出的规范),例如在命名中包括工程项目设置class名作为前缀。
      

  11.   

    呵呵,namespace不会用啊:
    [开发组织.][项目名称.][NameKey]
    或者
    [开发组织_][项目名称_][NameKey]
    还有嘛:
    cookie的声明是全局常量,实现定义好,程序员只能操作,不能自己随便定义
      

  12.   

    是不是把cookie给清空了额。
    session对话标记也是在cookie中保存的。
      

  13.   

    session丢失情况比较多,用statesever试试看
      

  14.   

    “cookie命名冲突”,那就避免冲突!
      

  15.   

    但是用 cookie的话关闭浏览器不会自动清除cookie吧
      

  16.   

    最好不要用太多的session~  或者设置过期时间
      

  17.   

    1。把session的过期时间设置大点。。2.再重新检查数据访问层的代码。sqlconnection,sqldatareader都要关闭和注销,sqlcommand也要注销3.跳转尽量少用response.Redirect();4.定时回收服务器资源。。5.实在不行。。sqlserver方式保存session
    以上都是经验不知道对你有不有帮助