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

遇到的问题: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();

时间: 2024-10-28 23:32:08

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

android:缓存服务器数据为本地存储

文章地址:http://blog.csdn.net/intbird 两个开源代码 实现想法 简单实现的一些简化做法 两个开源代码 也足够用了,没必要自己去写,文件很小 - reservoir 缓存对象为字符串; - disklrucache 存取sd卡工具; 实现想法 也就是将接口的字符串缓存到本地而已;不一定是网络缓存,可以指定任何想要的字符串保存,如果愿意可以用数据库等等,看需要咯,减轻服务器加载压力 在保证接口正常调用的情况下嵌入缓存管理方式,不对之前的代码造成任何影响,且方便替换; 不同

memcached 缓存服务器

Memcached 缓存服务器 Memcached 是高性能的分布式内存缓存服务器. 一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态web应用的速度.提高可扩展性. 主要特点: 1.C/S架构,协议简单: 2.基于libevent的事件处理(epoll): 3.Slab Allocation内存管理机制: 4.基于客户端的分布式: Memcached中保存的数据都在内存中,因此重启memcached,会导致全部数据丢失: 另外,内存容量达到指定值之后,就基于LRU(Le

Android 关于使用LruCache缓存你想缓存的数据

又是好久没写博客.. 今天我们来一起学习一下缓存技术,相信大家做开发的时候都知道请求网络数据的重要,但是有一些只用请求一次就过时性的消息比如某些新闻信息,如果我们每次进入新闻界面就从新从网络上获取势必会给用户带来不好的体验,所以我们需要缓存技术来帮我们解决这一问题. 1,LruCache介绍 核心的类是LruCache (此类在android-support-v4的包中提供) .这个类非常适合用来缓存图片,它的主要算法原理是把最近使用的对象用强引用存储在 LinkedHashMap 中,并且把最

C# 分布式缓存服务器方案

原文地址:http://www.wlm.so/Article/Detail/lmb4a50pydswh00000 先上图,然后再解释: 所有web服务器做多机集群,所有web服务器向缓存服务器1进行读写,缓存服务器1组成双机热备. 缓存服务器1作为主缓存服务器,向web服务器提供缓存服务器. 在缓存服务器1上做配置,配置其他缓存服务器组,可以有N组,每组都是双机热备. 所有缓存服务器通过remoting提供缓存服务. 缓存通过key,在缓存服务器1上进行判断key在哪个区间,每个区间对应一个服务

01-08-03【Nhibernate (版本3.3.1.4000) 出入江湖】二级缓存:NHibernate自带的HashtableProvider之缓存管理

http://www.cnblogs.com/lyj/archive/2008/11/28/1343418.html 管理NHibernate二级缓存 NHibernate二级缓存由ISessionFactory创建并由ISessionFactory自行维护.我们使用NHibernate操作数据时,ISessionFactory能够自动同步缓存,保证缓存的有效性.但是当我们批量操作数据时,往往NHibernate不能维护缓存持久有效.ISessionFactory提供了可编程方式的缓存管理方法.

App开发:模拟服务器数据接口 - MockApi

App开发:模拟服务器数据接口 - MockApi 为了方便app开发过程中,不受服务器接口的限制,便于客户端功能的快速测试,可以在客户端实现一个模拟服务器数据接口的MockApi模块.本篇文章就尝试为使用gradle的android项目设计实现MockApi. 需求概述 在app开发过程中,在和服务器人员协作时,一般会第一时间确定数据接口的请求参数和返回数据格式,然后服务器人员会尽快提供给客户端可调试的假数据接口.不过有时候就算是假数据接口也来不及提供,或者是接口数据格式来回变动--很可能是客

SQL从其他服务器数据库导入数据到本地数据库中

EXEC sp_dropserver 'ITSV2', 'droplogins' exec sp_addlinkedserver 'ITSV2' , '' , 'SQLOLEDB' , '168.9.123.123' exec sp_addlinkedsrvlogin 'ITSV2' , 'false' , null , 'sa' , 'sa' drop table test2; select top 12 * into test2 from ITSV2.InfoDB.dbo.city sele

redis作为mysql的缓存服务器(读写分离,通过mysql触发器实现数据同步)

一.redis简介Redis是一个key-value存储系统.和Memcached类似,为了保证效率,数据都是缓存在内存中.区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步.在部分场合可以对关系数据库起到很好的补充作用.它提供了Java,C/C++(hiredis),C#,PHP,JavaScript,Perl,Object-C,Python,Ruby等客户端,使用很方便. 二.架构图<ignore_js_

缓存服务器varnish概念篇

一.Varnish 简介 Varnish是一款高性能的开源HTTP加速器,挪威最大的在线报纸 Verdens Gang 使用3台Varnish代替了原来的12台Squid,性能比以前更好. Varnish 的作者Poul-Henning Kamp是FreeBSD的内核开发者之一,他认为现在的计算机比起1975年已经复杂许多.在1975年时,储存媒介只有两种:内存与硬盘.但现在计算机系统的内存除了主存外,还包括了CPU内的L1.L2,甚至有L3快取.硬盘上也有自己的快取装置,因此Squid Cac