WEB项目挂载到IIS session过期
莫名丢失问题:
1.可能是因为系统内部连续的抛出了5次以上的异常 导致进程重启(当前所有在线用户)
2.IIS6 以上默认配置进程,session存在进程内其实是在W3wp.exe中这个进程不稳定,在某些事件发生时,进程会重起,所以造成了存储在该进程内的Session丢失。
3.内存不足倒是的iis自动的收回机制
自动过期:
这里自动过期指的是我明明设置了时间 但是过期时间不是我设置的。例如设置了120分钟 但是20分钟就过期了。(首先这是因为iis默认的闲时超时是20分钟)
自动过期会在一下情况下发生(微软解释):
- 使用进程内会话状态模式时,如果aspnet_wp.exe或应用程序域重新启动,会话状态数据将丢失。这些重新启动通常在以下情况下发生:
- 在应用程序的Web.config文件的<processModel>元素中设置一个属性,该属性会在满足条件时启动新进程,例如memoryLimit。
- Global.asax或Web.config文件已修改。
- 对Web应用程序的\ Bin目录的更改。
- 防病毒软件扫描并修改Global.asax文件,Web.config文件或Web应用程序的\ Bin目录中的文件。
- 如果在应用程序的Web.config文件的<processModel>元素中启用Web园模式,请不要使用进程内会话状态模式。否则,可能发生随机数据丢失。
这里挂载iis下存在两个概念:会话超时 和闲置超时
配置文件没有生效:这里就是两个感念的提现,一致时同等生效,闲置小于会话闲置为先,其实也不能说配置文件没有生效,因为II7以上版本的改动吧,其实配置文件中的值代表的就是会话状态中的值。
其二注意会话超时存在两种一个存在与会话状态中,一个存在会话属性中,这两个很像但不是一个感念,一个针对的是session一个针对的是进程。
解决办法:
找到原因当然就好办了。设置对应时间就好了。
设置闲置超时:
点击应用程序池》点击选择项目程序池》高级设置》设置为自己的值
会话超时会话状态的设置;
网站》项目》会话状态》设置对应时间
会话超时会话属性的设置;
这里也就是我们如果没有做iis限制,但是配置文件设置了120,但是网站还是20分钟过期的地方:
网站》ASP>设置时间
作者:YanBigFeg —— 颜秉锋
出处:http://www.cnblogs.com/yanbigfeg
本文版权归作者和博客园共有,欢迎转载,转载请标明出处。如果您觉得本篇博文对您有所收获,觉得小弟还算用心,请点击右下角的 [推荐],谢谢!