引发 Session 丢失的几种原因

今日抽空就说一下 Session .Net v1.0/v1.1 中的存储模式。大家可在 MSDN 2003 中搜索一下 < sessionState > 即可看到关于 Web.config 中的 < sessionState > 节点元素的描述,共有 Off InProc StateServer SQLServer 四种模式。 Off InProc 分别指“不启用”、“进程内保存(默认值)”,此两种模式没啥讲的,所谓 InProc 就是把 Session 保存在 aspnet_wp.exe (Windows 2000 解析 ASP.NET 页面所用的进程 ) w3wp.exe (Win2003 的进程 ) 中,一旦进程被中止或被重置, Session 将丢失。
一、 引发 Session 丢失的几种原因
动过手写代码的人都知道, Session 丢失是比较常见的事。以下是本人这几年所遇到的,能够引发 Session 丢失的原因,不敢说是百分百,丢失概率还是特别高的。错…,简直可以说是“相…当…”高哇 ^_^"
1、 存放 Session 的电脑重启(废话,若这样都不丢,你神仙啊)
2、 模式:aspnet_wp.exew3wp.exe 在“任务管理器”中或其它情况下导致其进程被终止运行。 InProc
3、 模式:修改 .cs 文件后,编译了两次(只编译一次,有时不会丢失) InProc
4、 模式:修改了Web.config InProc
5、 模式,Windows 2003 环境:应用程序池回收、停止后重启 InProc
6、 模式:服务器上 bin 目录里的 .dll 文件被更新 InProc
以上列举的都是 InProc 模式下,容易引发解析 ASP.NET 应用程序重置的原因。是不是觉得很窝火?之前我也有这种感觉,慢慢就习惯啦,再后来就干脆不用这种模式了。于是乎,就有了使用下列两种模式的尝试,现写出来与大家一起分享。

你可能感兴趣的:(windows,.net,应用服务器,asp.net,asp)