总结了Session(mode="InProc")丢失的几个原因,有如下几种:
1、框架网页来自外部链接
2、系统运行时修改配置文件,global.asax文件
3、杀毒软件正在扫描配置文件
4、系统回收了IIS工作进程(w3wp.exe)
但是我今天遇到了一个新的问题,这个问题在本机调试时很难发现,但是部署在服务器时却发生了,即我有一个页面,需要大量的进行I/O操作,w3wp这个进程在进行I/O操作时大量占用CPU资源,同一时间在另外一台机子上登录系统,登录验证成功保存用户ID在Session,但是一进入系统内部,则提示Session丢失!
这个问题很让人恼火,在网上查找了好多资料,发现关于Session这个东西,很不好处理,有人干脆建议慎用或者不用Session,特别是Session的模式设置为"InProc",即保存在进程中(w3wp.exe),而w3wp.exe这个进程又不是很稳定,某些情况下Session莫明其妙的就没了。经过多方查找资料,猜测我遇到的这个问题可能是由于过于频繁的I/O操作和读取内存,导致w3wp.exe这个进程发生了阻塞,停顿在那里了,其他用户登录进来,无法将Session保存在工作进程w3wp.exe中,所以造成了Session“丢失”现象。
转载于:https://www.cnblogs.com/leodrain/archive/2007/10/30/943459.html