我做了一个校园电子商务网站,起初是运行在一个2000的服务器上,但是由于一些愿因,不得不转到另一台服务器上,这台服务器运行的操作系统是win2003,转过来后就出现了非常奇怪的现象,Session经常失效,搞得网站无法正常运作,请问各位大虾有没有解决的办法

解决方案 »

  1.   

    补充:我的网站是在.net平台上开发的,页面有asp.net写的,后台代码是C#,页面作了缓存
      

  2.   

    没办法,神仙也没辙,
    可以存放到sqlserver找到这个文件
    c:\WINNT\Microsoft.NET\Framework\v1.0.2914\ InstallSqlState.sql
    这个文件,装入 sql server 
    2 修改 web.config ,大概象下面这样
    < sessionState mode="SQLServer" 
    sqlConnectionString="data source=
    WIN2000;userid= 
    sa;password=" cookieless= "false"timeout= 
    "20" /> 
      

  3.   

    Session失效 原因有很多,看是不是以下情况
    一:有些杀病毒软件会去扫描您的Web.Config文件,那时Session肯定掉,这是微软的说法。
    二:程序内部里有让Session掉失的代码,及服务器内存不足产生的。
    三:程序有框架页面和跨域情况。
    第一种解决办法是:使杀病毒软件屏蔽扫描Web.Config文件(程序运行时自己也不要去编辑它)
    第二种是检查代码有无Session.Abandon()之类的。
    第三种是在Window服务中将ASP.NET State Service 启动。
      

  4.   

    同意楼上的,或着放到url中吧
      

  5.   

    将web.config中sessionState节点的cookieless设为true,这样就通过将会话标识符添加到URL来跟踪会话,我在实际项目中这么做过,没有发现丢失现象.
      

  6.   

    放数据库里是不是太慢了
    知不知道怎么设置session失效时间,在哪里设置
      

  7.   

    webconfig timeout= 
    "60"最大可是没有用的,你的失效并不是因为过期了:)据说和软硬件都有关系.不想用sqlservre那就改cookie.把用户名,权限等用cookie做,其他用session这样可以暂时回避一下这个问题
      

  8.   

    自己把SESSION的有效时间设置长一点就行了
    建议:
    最好少用SESSION
      

  9.   

    我把很多用Session的地方都改用直接url赋值了,似乎好了一些,不过还需要观察
    很感谢大家的热心帮助,我试过把session的值存入数据库,但那种方法还是会出现Session赋过值后失效的问题
      

  10.   

    seesion是要少用,但是不可能不用,改成url安全信能够保正吗。
    失效应该是你2003的系统有很大的关心
      

  11.   

    用url传值吧
    那样虽烦但不容易出问题
    Session丢失是常有的事
      

  12.   

    Session确实存在时常丢失的现象,不太好解决!除非把它放到数据库中。
      

  13.   

    非要执行InstallSqlState.sql?可是虚拟主机我没有sa的权限,执行InstallSqlState.sql的时候总是出错怎么办呢?