首页 新闻 会员 周边

有没有办法让数据一直在内存里,不会被iis回收掉,直到人为去重启服务器

0
悬赏园豆:5 [已解决问题] 解决于 2012-07-18 14:06

有没有办法让数据一直在内存里,不会被iis回收掉,直到人为去重启服务器

拖鞋王子的主页 拖鞋王子 | 初学一级 | 园豆:37
提问于:2012-07-13 07:44
< >
分享
最佳答案
0

放在第三方缓存中,比如Memcached, Windows上Memcached服务器可以用Couchbase

dudu | 高人七级 |园豆:31003 | 2012-07-13 09:20

Memcached了解过,但是没用过,不知道可靠度稳定度如何

拖鞋王子 | 园豆:37 (初学一级) | 2012-07-13 10:53

@拖鞋王子: 这是大型网站必备的,久经考验

dudu | 园豆:31003 (高人七级) | 2012-07-13 10:58
其他回答(4)
0

ASP.NET站点本质是c#程序->这个c#程序托管在w3wp.exe上->w3wp.exe对应IIS中的应用程序池,由IIS管理->“IIS回收”本质是应用程序池的重启。

综上所述,你的问题本质是:有没有办法让c#程序运行时内存中的某个数据,即使重启这个程序,内存中的数据依然存在?答案显而易见了。。。

我觉得你解决问题的大方向错了。

收获园豆:5
水牛刀刀 | 园豆:6350 (大侠五级) | 2012-07-13 09:08
0

没有,要是你启不来了怎么办,内存里就老是存着那些东西?要是启动中别的程序把你的内存覆盖了怎么办?

这么说吧,内存里的数据,总有一个宿主记录了一张索引表,这个宿主只要不死,内存中的东西还是会拿回来的。

我们简单点把这个宿主叫一个对象。如果你有本事让IIS与另外一个进程中的程序同时握着这个对象的话,那么IIS重启后,就可以把这个对象拿回来了。

你可以试试,我懂得也就这么多。

幽灵~ | 园豆:268 (菜鸟二级) | 2012-07-13 09:12
0

memcached

memorycache

chenping2008 | 园豆:9836 (大侠五级) | 2012-07-13 09:47
0

把 iis的限制超时和垃圾回收时间都设置成0 就能满足你的需求 不过这样子用久了估计会爆掉 

菜鸟老了 | 园豆:145 (初学一级) | 2012-07-13 18:54

设置成0根本没用,会一直回收

支持(0) 反对(0) 390620652 | 园豆:232 (菜鸟二级) | 2019-03-03 18:29
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册