WEB项目挂载到IIS session过期

时间:2022-09-20 04:31:11

莫名丢失问题:

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一个针对的是进程。

解决办法:

找到原因当然就好办了。设置对应时间就好了。

设置闲置超时:

点击应用程序池》点击选择项目程序池》高级设置》设置为自己的值

WEB项目挂载到IIS session过期

会话超时会话状态的设置;

网站》项目》会话状态》设置对应时间

WEB项目挂载到IIS session过期

会话超时会话属性的设置;

这里也就是我们如果没有做iis限制,但是配置文件设置了120,但是网站还是20分钟过期的地方:

网站》ASP>设置时间

WEB项目挂载到IIS session过期