首页 新闻 会员 周边

iis会回收保存在静态变量里的数据吗

0
[已解决问题] 解决于 2012-07-05 17:51

iis会回收保存在静态变量里的数据吗

我现在的项目碰倒一个问题,就是程序初始化时初始化的静态变量,在服务器上面跑一段时间就没了

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

你的静态变量的值会一直保存,直到你的应用程序池被回收。当IIS自动回收应用程序池后,值就丢了。

奖励园豆:5
水牛刀刀 | 大侠五级 |园豆:6350 | 2012-07-04 10:48

我没有设置自动回收,默认就会自动回收吗

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

@拖鞋王子: 我在应用程序池的高级设置里找到了: 回收-固定时间间隔(分钟)  他的描述是:[time]一个时间段(以分钟为单位),超过该时段后,应用程序池将回收,值为0意味着应用程序池不会按固定间隔回收。

 

设置成0就不会自动回收了吧

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

@拖鞋王子:设置成0,如果你的程序有内存泄漏,那么会导致w3wp.exe占的内存一直变大,加上得不到回收,最终吃光内存,应用程序池crush,最终service unavalaible。最好的方法还是持久化。

水牛刀刀 | 园豆:6350 (大侠五级) | 2012-07-04 11:32
其他回答(4)
0

静态 变量 会 一直 保存哦。

無限遐想 | 园豆:3740 (老鸟四级) | 2012-07-04 09:53
0

会回收静态变量

dudu | 园豆:30994 (高人七级) | 2012-07-04 10:19

我要一直用这个静态变量里的数据,有什么好方法吗

支持(0) 反对(0) 拖鞋王子 | 园豆:37 (初学一级) | 2012-07-04 10:23

@拖鞋王子: 持久化,存在文件或数据库中

支持(0) 反对(0) dudu | 园豆:30994 (高人七级) | 2012-07-04 10:25

@dudu: 我在静态变量里存的是List或Dictionary,能不能序列化成json后存到文件

支持(1) 反对(0) 拖鞋王子 | 园豆:37 (初学一级) | 2012-07-04 10:40

@拖鞋王子: 可以,建议用Json.NET

支持(0) 反对(0) dudu | 园豆:30994 (高人七级) | 2012-07-04 10:48

@dudu: Json.NET是不是就是Newtonsoft.Json

支持(0) 反对(0) 拖鞋王子 | 园豆:37 (初学一级) | 2012-07-04 10:49

@拖鞋王子: 就是这个

支持(0) 反对(0) dudu | 园豆:30994 (高人七级) | 2012-07-04 10:58

@dudu: 3Q 我去试试

支持(0) 反对(0) 拖鞋王子 | 园豆:37 (初学一级) | 2012-07-04 11:01

@拖鞋王子: 再帮我看看我在下面的回复吧,是不是把那个设置成0就不会被回收了

支持(0) 反对(0) 拖鞋王子 | 园豆:37 (初学一级) | 2012-07-04 11:12
-4

可以考虑使用const或者static readonly关键字.

zhangweiwen | 园豆:904 (小虾三级) | 2012-07-04 11:05

能具体点吗,我想要的是静态变量可以一直使用,能达到这个效果吗

支持(0) 反对(0) 拖鞋王子 | 园豆:37 (初学一级) | 2012-07-04 11:09

@拖鞋王子: 

 public const string DateTimeFormat = "yyyy-MM-dd HH:mm";

public static readonly string Domain = WebConfigurationManager.AppSettings["domain"];

绝对可以.

支持(0) 反对(0) zhangweiwen | 园豆:904 (小虾三级) | 2012-07-04 11:15
0

iis没有回收,没有重启,静态变量一直在的。

Qlin | 园豆:2403 (老鸟四级) | 2012-07-04 17:11
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册