问题描述:
问题一:用了Session(InProc方式)记录用户信息,在系统中用到了第三方的DLL(C#),调用其中方法时执行完操作刷新页面发现Session丢失,必须需要重新登录。不调用此方法刷新没事。
解决办法:使用StateServer方式,问题解决。
问题二:系统上线前将本系统的相关DLL进行加密。加密结束进行调试,发现在使用加密后的DLL(自己的类库)每次编译完再测试都需要登录,但是此时Session方式为StateServer。在同样问题一重现....
于是头怒了,要求查找解决办法。网上游走一下午,没有找到解决办法。
检测了对Bin文件夹文件的操作,调用方法是并没有对文件进行操作。
现想请教下在Session方式为StateServer的方式下Session丢失的原因有哪些?还有就是如何监控Session的读写操作?
在此先感谢各位了,若能解决,愿奉上自己所有分数。

解决方案 »

  1.   

    补充:检查了系统中Config文件,同样未被修改
      

  2.   

    1.在Session方式为StateServer的方式下Session丢失的原因有哪些?
    系统要运行在负载平衡的 Web 场环境中,而系统配置文件web.config中的Session状态却设置为InProc(即在本地存储会话状态),导至在用户访问量大时,Session常经超时的情况。引起这个现象的原因主要是因为用户通过负载平衡IP来访问WEB应用系统,某段时候在某台服务器保存了Session的会话状态,但在其它的WEB前端服务器中却没有保存Session的会话状态,而随着并发量的增大,负载平衡会当作路由随时访问空闲的服务器,结果空闲的服务器并没有之前保存的Session会话状态。
    2.还有就是如何监控Session的读写操作?
    监控Session的读写操作  这个没弄过  帮不上忙...
      

  3.   

    不明白为什么要监控SESSION,是为了防止被人篡改吗?
      

  4.   

    sesson有一个重大BUG就是IIS有进程回收机制如果系统繁忙的session会丢失。解决办法存在sqlserver数据库中但是读取速度慢而且捕获不到session的end事件