用在要保持session的页里设隐藏iframe每隔一段时间(这个时间小于session.timeout的时间)把涮 新一次frame里的空页面!实现方法如下:

在要保持session页里加上: 
<iframe width=0 height=0 src="SessionKeeper.asp">
</iframe>

同目录下建一下SessionKeeper.asp的文件。 
<html>
<head>
  <meta http-equiv="Refresh" content="900000;url=sessionKeeper.asp"> 
  <!--每隔900秒刷新一下自己,为了和服务器通讯一下,保持session不会丢-->
</head>
</html>

这种方法还是比较长见的,但是我自己没有实现,另外还有一种和上面类似的方法,不过他不是用meta自动涮新嵌套的iframe的方法。他是用javascript: window.setTimeout("functionname()",10000);第隔一段时间时间自动调用一个函数的方法,当然函数里还是要去连接一个空的文件。具体方法如下:

在要保持session面里加上: 
<script  id=Back  language=javascript></script>
<script language=javascript>
 function keepsession(){
  document.all["Back"].src="SessionKeeper.asp?RandStr="+Math.random();
  //这里的RandStr=Math.random只是为了让每次back.src的值不同,防止同一地址刷新无效的情况
  window.setTimeout("keepsession()",900000);  //每隔900秒调用一下本身
  }
 keepsession();
</script>
这样同一目录下建一个空内容的sessionKeeper.asp就文件就可以了! 这个可以使用!!!!!!!

问题没有解决:通过以上的方法Session保持应该没有问题了,IIS默认无请求的清除session的值为20分钟,我设的每次交互服务的时间都远远小于这个值,可是我大概过个一天多的时间,session还是无缘无故的没了!郁闷。

后来在网上多方查找终于找到答案:原来IIS为了保护服务器,有一个“回收”的概念!测试了半天终于有了点大体了解(不要笑我菜^-^)。先来看看这个“回收”在哪设置。

启动IIS管理器->应用程序池->右键->属性->回收选项卡,有一项是默认就起作用的,就是第一项:“回收工作进程(分 钟)”默认值1740分钟,大约29个小时。他是什么意思呢?我个人理解:在session.timeout之后再过1740分钟自动把所有仍在保持的session清除。这个值最大可设为4000000,大概是2700多天!我直接取消了,不用他自动回收!问题终于解决。

另外这个属性对话框中还有其它几项:第二项应该是连接的用户超过了一定数目回收。第三项是到某一个时间就自动回收。在“性能”选项卡中“在空闲此时间段后 关闭工作进程”,这里就是设置IIS默认session.timeout时间的地方了。默认值20分钟,这里同样最大值可设为4000000,和在ASP 页中设置session.timeout最大值为1440不同。在这里设置超过大于1440的值是否起作用,我没作测试,我想应该是可以的。那为什么在 ASP页中session.timeout的值最大只能是1440在IIS的属性中却能设的那么大呢?应该是属于一种保护机制:ASP页的 session.timeout的值哪个用户都可以设,IIS里却只有管理员可以设,两者的权限不同,所以设置的范围就不同了。

以上都是在网上查找的方法,第二种方法是可用的,但是如果遇到【模态画面】好像就不行了,经过调试发现每隔一段时间访问服务器端的空画面没有被执行,不知道为什么,就把方法修改一个是针对模态画面的session Timeout

<iframe id="SessionGoOn" src="./SessionGoOn.aspx" style="width: 213px; height: 213px; display: none;"></iframe>

  1.以下的方法是模态窗口保持Session

<script type="text/javascript"> var timer;//每隔10分钟定向访问timer = setInterval(function () { document.getElementById('SessionGoOn').contentDocument.location.href = document.getElementById('SessionGoOn').contentDocument.location.href; }, 600000);</script>

  2.以下是正常画面保持Session

<script type="text/javascript"> var timer;//每隔10分钟刷新服务器空画面timer = setInterval(function () { document.getElementById('SessionGoOn').contentDocument.location.reLoad(true); }, 600000);</script>

Loaction.ReLoad 如果该方法没有规定参数,或者参数是 false,它就会用 HTTP 头 If-Modified-Since 来检测服务器上的文档是否已改变。如果文档已改变,reload() 会再次下载该文档。如果文档未改变,则该方法将从缓存中装载文档。这与用户单击浏览器的刷新按钮的效果是完全一样的。

如果把该方法的参数设置为 true,那么无论文档的最后修改日期是什么,它都会绕过缓存,从服务器上重新下载该文档。这与用户在单击浏览器的刷新按钮时按住 Shift 健的效果是完全一样。  

两种方式都已经测试成功,注意:方法1可以被方法2的画面所使用,但是方法2不能被方法1的画面使用

转载于:https://www.cnblogs.com/WarBlog/p/5249854.html

如何使Session永不过期相关推荐

  1. java session 永不过期_Java Web Application使Session永不失效(利用cookie隐藏登录)

    在做 Web Application 时,因为 Web Project 有 session 自动失效的问题,所以如何让用户登录一次系统就能长时间运行三个月,就是个问题. 后来,看到 session 失 ...

  2. 自动延期时间 php,延长session的过期时间

    PHP中的session永不过期 不修改程序是最好的方法了,因为如果修改程序,测试部一定非常郁闷,那么只能修改系统环境配置,其实很 简单,打开php.ini设置文件,修改三行如下: 1.session ...

  3. 一个判断session是否过期的小技巧

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. Session一直是我们做web项目经常使用的,以前没太注意,这次又细致的看了下! 1.sessio ...

  4. Ehcache二级缓配置永不过期,缓存失效问题 ---- 原因没有加载ehcache.xml配置文件,加载了默认的ehcache-failsafe.xml配置文件

    问题: 在ehcache.xml配置文件中的参数 配置的空闲时间,过期时间都很长, 或者说配置的永不过期, 但是在测试项目过程中, 程序还是会有重新查数据库, 配置参数,配置文件好像不生效问题; 解决 ...

  5. Oracle用户密码过期,修改永不过期

    1.查询密码有效时长 select * from dba_profiles where profile='DEFAULT' and resource_name='PASSWORD_LIFE_TIME' ...

  6. Oracle 创建用户并设置密码永不过期

    创建用户 查看 dba_users 表可以看到,即使是 SYSTEM 用户,密码也会到期.另外,绝大部分用户,使用的 配置文件(PROFILE)都是 DEFAULT select * from dba ...

  7. redistemplate 设置永不过期_密码已过期 拒绝访问如何处理?

    1. 开启密码过期选项 通常情况下,此功能默认都是禁用的状态.所以首先第一步,我们需要先开启密码过期选项.同时按住Windows键+R键,在出现的命令窗口中,输入以下命令:netplwiz,点击确定. ...

  8. 彻底解决PHP Session不过期以及SessionId保持不变的问题

    为什么80%的码农都做不了架构师?>>>    用过asp.net里面的session再用过php里面的session,你会觉得php 的session相比asp.net里面的ses ...

  9. 使用Powershell来修改Hyper-v Server本地管理员密码为永不过期

    在使用Hyper-vServer来进行虚拟化后,使用SCVMM管理,SCVMM会创建一个本地帐号(scvmm开头的)来远程管理Hyper-vServer,但是由于这个帐号创建后,密码会很快过期,将导致 ...

  10. redistemplate 设置永不过期_“密码已过期,拒绝访问!”

    定期更改本地账户密码可以一定程度上维护我们的系统,网络安全,本期视频中,小编将指导大家如何在Win10中设置本地账户密码的过期期限,以提醒您何时需要重置密码,一起往下看看吧. 1. 开启密码过期选项 ...

最新文章

  1. 上海大学c语言程序设计,上海大学2009-C语言程序设计秋季学期试卷.doc
  2. 基于图像的单目三维网格重建
  3. Jquery 常用方法经典总结
  4. Python Socket Programming
  5. medical research
  6. (笔记)Mysql命令drop database:删除数据库
  7. 25k英里高速建48个充电走廊,美国电动汽车产业迎来春天
  8. 【java】为什么HashMap桶中节点个数超过8才转为红黑树?
  9. [LeetCode]119.Pascal's Triangle II
  10. 支持上百万作业量自动调度与编排,BMC云课堂发布Control-M 20
  11. 吴恩达神经网络和深度学习-学习笔记-35-残差网络(Residual Network)
  12. 华为在鸿蒙的另一张王牌,华为的这两张王牌,将助力Mate40系列角逐安卓机皇的位置...
  13. python拦截tcp数据包_发送低级原始tcp数据包python
  14. eclp物流是什么意思_小票零担,大票零担及整车怎么选择物流运输方式?
  15. 如何将socket服务器部署到云服务器上
  16. ognl # % 的作用(井号,星号,百分号)
  17. excel复制后卡死的解决办法
  18. 戴尔云客户端:三大发力点实现高速增长
  19. LinuxC:锁、条件变量、信号量实现线程间的同步 生产者与消费者 pthread_mutex_init pthread_cond_init sem_init
  20. css 文本超出显示省略号不起作用

热门文章

  1. PHP表单header post get
  2. Linux IO模型漫谈(4)- 非阻塞IO
  3. 使用Proj.Net创建空间参考
  4. jquery的pagination插件实现无刷新的分页
  5. x的平方加y平加xy的java语言_面试被虐题:说说 JVM 系语言的函数式编程
  6. 1.MongoDB入门详解
  7. html单页倒计时,单页面vue实例带倒计时功能
  8. java容器输入_Java 容器初识篇
  9. 优雅的校验参数-javax.validation
  10. 使用Graphics画表格