Session【常见问题请见下图】

常见Session丢失原因】

      1、Session超时,用户打开页面,页面长时间不操作会导致此原因

      2、IIS应用程序池回收,或者重启

      3、Web.Config修改,即IIS应用程序池重启

      4、dll被替换或者动态页面修改,即IIS应用程序池重启

      5、杀毒软件对.config文件进行扫描,可能会导致IIS应用程序池回收

      6、用户浏览器禁用cookie

      7、其他原因

      其他原因有点不负责,但是好多程序员无法查明是什么原因导致Session丢失,但Session丢失我归结为两大类,一个是数据的Key丢了,一个是Session内容数据库的丢了,大家这样就好理解了,用户浏览器禁用cookie一定是Key没了。IIS应用程序池回收必定会导致Session的内容缓存表丢失,当然还有一些其他原因。

解决Session丢失的漫长路

      解决过Session丢失的都会用到这几种方法

          1、InProc:将Session存到进程内。

          2、StateServer:将Session存到独立的状态服务中(Asp.Net State Service)。

          3、SqlServer:将Session存到SqlServer中。

          4、Cookieless:设置客户端Session存储的方式。

     用了这些方法之后,有的是该丢还丢,有的是稳定了速度却慢了。

     还有个这个Custom自定义模式,大家不要还停留在非开源模式下解决问题的思想,找找开源项目,一定能找到的,有人说ASP.NET上哪里找开源啊,非常简单NuGet,如果想了解开源,一定要学会使用NuGet。

 

posted @ 2017-03-10 13:38  小美好。  阅读(231)  评论(0编辑  收藏  举报