码迷,mamicode.com
首页 > Web开发 > 详细

webservice缓存服务器数据到本地,提供服务接口读取缓存的文件

时间:2016-06-13 13:29:36      阅读:326      评论:0      收藏:0      [点我收藏+]

标签:

遇到的问题:1、缓存到本地的文件写入一次,不能读取,不能二次写入。程序报异常:文件被占用

              解决办法:

                           FileStream fs = new FileStream(appPath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
                           StreamReader sr = new StreamReader(fs, System.Text.Encoding.UTF8);

设置文件FileShare的模式和FileAccess模式,可以解决这个问题

原始代码为: FileStream fs = new FileStream(appPath, FileMode.Open);

                  StreamReader sr = new StreamReader(fs, System.Text.Encoding.UTF8);

 

webservice 定时缓存文件 需要在网站中加入Gloal.asax文件,在  void Application_Start(object sender, EventArgs e)  (应用程序启动的时候就会执行)

中添加计时器,定时执行缓存方法

System.Timers.Timer timer1 = new System.Timers.Timer();
timer1.Interval = 600000; // 30000 毫秒 = 30秒
timer1.Elapsed += new System.Timers.ElapsedEventHandler(notma.NotamMemory);//执行的方法
timer1.AutoReset = true;//是否重复执行
timer1.Enabled = true;

 

 

 

web 读取appconfig的方法   string appPath = System.Web.Configuration.WebConfigurationManager.AppSettings["appPath"];

cs读取和修改appconfig的方法

//获取Configuration对象
Configuration config = System.Configuration.ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
//根据Key读取<add>元素的Value
string name = config.AppSettings.Settings["timer"].Value;
//写入<add>元素的Value
config.AppSettings.Settings["timer"].Value = this.txt_time.Text.Trim();
config.Save(ConfigurationSaveMode.Modified);
//刷新,否则程序读取的还是之前的值(可能已装入内存)
System.Configuration.ConfigurationManager.RefreshSection("appSettings");


timer1.Start();

webservice缓存服务器数据到本地,提供服务接口读取缓存的文件

标签:

原文地址:http://www.cnblogs.com/houzf/p/5580089.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!