首页 新闻 会员 周边

IIS应用程序池自动回收,如何解决数据丢失的问题?

0
悬赏园豆:20 [待解决问题]

在程序中数据库中经常需要用到的数据  保存在了 Dictionary<string, S_REGISTRYINFO>中  value 是一个实体,相当于一个缓存;

并在Global.asax中的Application_Start  中使用线程定时器来定时更新Dictionary中的数据。

现在的问题是:当网站过10几分钟没人访问线程就不会再运行,我想可能是IIS应用程序池自动回收的问题,当再次有请求访问网站时,Dictionary中的数据全没有了,如何解决数据丢失的问题?

private System.Threading.Timer time;

 void Application_Start(object sender, EventArgs e)     {      

   //在应用程序启动时运行的代码       

  int minute = Convert.ToInt32(ConfigurationManager.AppSettings["Minute"]) * 60 * 1000;     

    time = new System.Threading.Timer(OnTimedEvent, 3, 0, minute);     

    }    

void OnTimedEvent(object obj){。。。}

  

The Mechanic的主页 The Mechanic | 初学一级 | 园豆:114
提问于:2013-01-04 18:32
< >
分享
所有回答(3)
0

IIS自动回收的时间是29小时,估计不是这个原因,参考这个 http://q.cnblogs.com/q/38102/ 

2012 | 园豆:21230 (高人七级) | 2013-01-05 08:43
0

那你可以找一个表或者是文件来序列化保存一下

chenping2008 | 园豆:9836 (大侠五级) | 2013-01-05 09:08
0

序列化到文件或者是保存到表里面吧,没有太好的办法

Tom.汤 | 园豆:3028 (老鸟四级) | 2013-01-05 09:42
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册