社区
ASP
帖子详情
关于session“永不过期”的问题!
艾思软件-app开发公司
2006-06-13 04:23:26
这里的永不过期是是指,只要不关闭浏览器就保留session!
不用cookie!
不能刷新页面!
不要回答session.timeout=-1这样的答案!
JS每一段时间调用ASP,实现和服务器交互是否可行!?
...全文
1714
25
打赏
收藏
关于session“永不过期”的问题!
这里的永不过期是是指,只要不关闭浏览器就保留session! 不用cookie! 不能刷新页面! 不要回答session.timeout=-1这样的答案! JS每一段时间调用ASP,实现和服务器交互是否可行!?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
25 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hulin862008
2007-01-26
打赏
举报
回复
嘿嘿!可以!收藏起来先!不知道能把帖子顶上去不哟!让大家也在看看!技术就是这个学来的呀!
艾思软件-app开发公司
2006-06-21
打赏
举报
回复
谢谢大家关注,结贴!
BlueDestiny
2006-06-21
打赏
举报
回复
如果真要做成这样,不用太麻烦的,你试试加个iframe进来,把height=1,里面不间段刷新就行了。
hxnet
2006-06-21
打赏
举报
回复
关注
cestar2005
2006-06-21
打赏
举报
回复
JS每一段时间调用ASP,实现和服务器交互是否可行!?
可以用XMLHTTP实现
yinxiaoyue
2006-06-21
打赏
举报
回复
保存先
艾思软件-app开发公司
2006-06-21
打赏
举报
回复
先说明情况:公司做监控系统,B/S结构,主要用在局域网内部!监控系统开机可能要开好长时间,管理员的ID和权限等是写在Session里的——我想不用Cookies的原因可能是Cookies不是很安全,还有就是局域网内,只是几台机子访问服务器,Session没有几个,所以即使总保持着Session也不会太占用资源,最起码服务器能承受的起。
保持Session的方法:有人说设session.timeout=-1,或小于0的数。这种方法肯定是不行的,session计算时间以分钟为单位,必须是大于等于1的整数。又有人说设session.timeout=99999。这种同样不行,session有最大时间限制。我经过测试发现最大值为24小时,也就是说你最大可以session.timeout=1440,1441都是不可以有,呵呵。本人测试环境:win2003+IIS6.0+ASP3.0。
所以想通过设session.timeout的过期时间让session永不过期是不可能的。写到Cookies里是比较好的方法,网上也有很多这样的教程,这里就不再说了!还有就是用在要保持session的页里设隐藏iframe每隔一段时间(这个时间小于session.timeout的时间)把涮新一次frame里的空页面!实现方法如下:
在要保持session页里加上:
<iframe width=0 height=0 src="SessionKeeper.asp">
</iframe>
同目录下建一下SessionKeeper.asp的文件。
<html>
<head>
<meta http-equiv="Refresh" content="300;url=sessionKeeper.asp">
<!--每隔300秒刷新一下自己,为了和服务器通讯一下,保持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()",900); //每隔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里却只有管理员可以设,两者的权限不同,所以设置的范围就不同了。
以上错误的地方请高手指正!希望没有误人子弟。
yeetoo
2006-06-16
打赏
举报
回复
异想天开!
session设计的目的是什么?就是保持对话状态,如果对话都不存在,还要让session存在?
可以将你想要一直存在的东西放在application中,别试图放在session中.
试过把每个用户的信息都放在application中吗? 我曾经把30多M的东西放在了application中,一切正常.注册application变量中不要用数组,否则会很慢,如果数组很大,CPU一直是100%.
艾思软件-app开发公司
2006-06-16
打赏
举报
回复
up
任亚军
2006-06-16
打赏
举报
回复
csdn左上角的不就是这样吗
szlzc
2006-06-14
打赏
举报
回复
关注
艾思软件-app开发公司
2006-06-14
打赏
举报
回复
建议改用数据库标志位来判断
能不能讲的清楚点!谢谢
这里的session()主要是为了保存管理员的信息!用标志位怎么做,他 是什么作用?!没用过。
班门弄斧
2006-06-14
打赏
举报
回复
个人觉得用session()始终是解决不了实际问题的
建议改用数据库标志位来判断,效果岂不是更好,而且你所谓的“永不过期”,可以通过时间来判断,想设多长有多长,真正做到随心所欲!
艾思软件-app开发公司
2006-06-14
打赏
举报
回复
大家的方法都可以!
我是想不涮新页面!只用js不停调有asp的方法!是否可行!谢谢
----------------------------------------------------------------
还是不是只有涮新页面才能保持session!包括iframe也是要涮新的!能不能不用涮新?我感觉是不可以的,但是想请高手确认一下,网上查不是到这方面知识!
sibyle
2006-06-13
打赏
举报
回复
如果 是B/s结构 的 内部局网的
可以用
<meta>标记
<meta http-equiv="Refresh" content="时间;url=要刷新产网址">
试试
艾思软件-app开发公司
2006-06-13
打赏
举报
回复
这是内部局网的一个监控系统!监控系统一开机就是个把月,session要一直保留,不过最多也就几个session,不会太占资源。
程序B/S结构
服务器内存一个G。
我想确定的是,能不能用JS调用服务器端ASP实现无刷新何存session!
我的一个同事说可以!不知道怎么实现!是不是真的可以呢?!
还是不是只有涮新页面才能保持session!包括iframe也是要涮新的!能不能不用涮新?我感觉是不可以的,但是想请高手确认一下,网上查不是到这方面知识!
谢谢大家关注
jinfeng003
2006-06-13
打赏
举报
回复
<iframe width=0 height=0 src="session.asp">
</iframe>
session.asp里边什么也不用写,
加上<html>的刷新代码
每隔十分钟左右刷新一次,这样session就可以维护住了
<html>
<head>
<meta http-equiv="Refresh" content="600;url=session.asp">
</head>
</html>
不过,session在服务器端维护很消耗内存的,少用啊~~不行用cookies
Leo95276
2006-06-13
打赏
举报
回复
关注中,也希望windzjp (赵依燃-lastidea.net) 能尽快解决问题
BlueDestiny
2006-06-13
打赏
举报
回复
也不知道你的服务器到底有多大内存...
艾思软件-app开发公司
2006-06-13
打赏
举报
回复
晕,上一个搞错了,并不能证明session没有消失,因为每次刷新都重新对session赋值了,晕死,请高手指点!
加载更多回复(5)
asp之让
Session
永不
过期
所以想通过设
session
.timeout的
过期
时间让
session
永不
过期
是不可能的。写到Cookies里是比较好的方法,网上也有很多这样的教程,这里就不再说了!还有就是用在要保持
session
的页里设隐藏iframe每隔一段时间(这个...
asp保持
SESSION
变量不
过期
asp的
session
变量过一段时间就会
过期
,保持它的不
过期
微服务架构下的分布式
Session
管理
而时下热门的微服务架构又会为
Session
管理带来哪些改变与影响,我们在做微服务架构下的
Session
管理时又该考虑哪些
问题
。在此我们将会从改变与影响出发,一起探讨如何做好微服务架构下的
Session
管理。
PHP中的
session
永不
过期
的解决思路及实现方法分享
让PHP的
session
永不
过期
,你可能没有遇到这么郁闷的
问题
,但是我遇到过,很郁闷。
SpringMVC拦截器实现监听
session
是否
过期
详解
主要介绍了SpringMVC拦截器实现监听
session
是否
过期
详解,还是比较不错的,这里分享给大家,供需要的朋友参考。
ASP
28,391
社区成员
357,059
社区内容
发帖
与我相关
我的任务
ASP
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
复制链接
扫一扫
分享
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章