我用了iframe,所以判断用户是否登录的时候用了Session。
我并没有设置Session的存活时间,所以应该是默认20分钟啊,Web.Config里的配置是<sessionState mode="InProc" timeout="30"/>,IIS里的配置是默认的20啊!
前段时间已经发布到服务器上了,用得很正常,但是最近突然就不正常了,感觉Session只能保持几秒钟。
我在本地调试了一下,没有任何问题,但是发布到服务器上还是有问题。
我感觉应该是服务器的配置问题,但是又不知道是哪里的配置,你能告诉我吗?

解决方案 »

  1.   

    Session模式使用SessionState而不要使用InProc。因为InProc模式在asp.net进程被干扰(比如重启,比如Web.Config文件被杀毒软件扫描,这个我试过)的时候会导致Session丢失。
      

  2.   

    当然,你想用SQL模式也可以。
      

  3.   

    那个Session是不稳定,往往和设定的时间不符。实在不行保存在cookie里试试
      

  4.   

    如果你的应用中不需要捕获取Session_End 事件的话,建议使用状态服务来保存Session.1楼说的是对的。一些很意外的情况会导致Session丢失。
      

  5.   

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

  6.   

    你们都说一些意外情况会导致Session丢失,可是我们在不同时段试了十几次,就算是杀毒软件也不可能杀一整天啊!
      

  7.   

    打開應用程序追蹤功能!看session變化! tarce="true"
      

  8.   


    服务资源紧张的时候Session就会被扔了
      

  9.   

    在iframe中session是有丢失的问题……建议SessionState用SQL验证好点……(不过是有时候服务器内存不住……联系下服务器商让他们解决就可以了……我也遇到过……)
      

  10.   

     session  和  cookies的区别来了··
      

  11.   

    尝试为IIS和.net打上相应的补丁,这可能是MS的bug