asp.net修改设置会话超时间不生效,是什么原因?
在web.config 设置了 SessionTimeout 为三分钟
sessionState 设置Timeout时间为 三分钟 但是页面远远超过三分钟不操作,还是在线,可以正常操作。 为什么在web.config设置超时没有生效? 后面再IIS上设置
IS-网站-属性-Asp.net-编辑配置-状态管理-会话超时(分钟)-设置为1,即为1分钟 IIS-网站-具体网站(如DemoSite)-属性-Asp.net,此时有两个选项,一个是“编辑全局配置”,一个是“编辑配置”。
如果“编辑全局配置”,就对当前服务器所有网站有效
如果“编辑配置”,则只对当前网站生效。因为一个服务器可能有很多独立网站。
1、继续选择“状态管理”-会话超时(分钟)-设置为1,即1分钟。 但是还是远远超过三分钟不操作,页面还是默认用户在线,可以正常操作。是什么原因导致会话超时设置失效?
在web.config 设置了 SessionTimeout 为三分钟
sessionState 设置Timeout时间为 三分钟 但是页面远远超过三分钟不操作,还是在线,可以正常操作。 为什么在web.config设置超时没有生效? 后面再IIS上设置
IS-网站-属性-Asp.net-编辑配置-状态管理-会话超时(分钟)-设置为1,即为1分钟 IIS-网站-具体网站(如DemoSite)-属性-Asp.net,此时有两个选项,一个是“编辑全局配置”,一个是“编辑配置”。
如果“编辑全局配置”,就对当前服务器所有网站有效
如果“编辑配置”,则只对当前网站生效。因为一个服务器可能有很多独立网站。
1、继续选择“状态管理”-会话超时(分钟)-设置为1,即1分钟。 但是还是远远超过三分钟不操作,页面还是默认用户在线,可以正常操作。是什么原因导致会话超时设置失效?
是这样的。超时时间,是指“空闲”时间超时。而且假设设置为20分钟,并不是20分钟空闲时间刚到期、就立刻触发 global.asax 中的 Session_End。当20分钟空闲时间到期了,假设第25分钟才有此会话的一个操作请求到来,那么 asp.net 会在处理此请求时才会让 Session 过期。也就是说此时,25分钟内,其实 Session 是一直没有过期的,一直占用着服务器端的内存。编程中不要过度使用 Session 集合。Session 集合保存几个简单对象值就行了。千万不要保存复杂数据、大量数据。复杂数据、大量数据,应该保存在数据库中,并用 asp.net 的 Cache 做数据缓存(因为它会自动丢弃数据,优化内存使用),用 SessionID 与其它数据组合起来作为 Cache 单元的查询 key。这方面,除非有其它原因,则没有必要付出网络来回通讯的代价去使用 memcached、redis等等。
是这样的。超时时间,是指“空闲”时间超时。而且假设设置为20分钟,并不是20分钟空闲时间刚到期、就立刻触发 global.asax 中的 Session_End。当20分钟空闲时间到期了,假设第25分钟才有此会话的一个操作请求到来,那么 asp.net 会在处理此请求时才会让 Session 过期。也就是说此时,25分钟内,其实 Session 是一直没有过期的,一直占用着服务器端的内存。编程中不要过度使用 Session 集合。Session 集合保存几个简单对象值就行了。千万不要保存复杂数据、大量数据。复杂数据、大量数据,应该保存在数据库中,并用 asp.net 的 Cache 做数据缓存(因为它会自动丢弃数据,优化内存使用),用 SessionID 与其它数据组合起来作为 Cache 单元的查询 key。这方面,除非有其它原因,则没有必要付出网络来回通讯的代价去使用 memcached、redis等等。 就是空闲了十几二十分钟没有任何操作,会话还是没有超时退出。