解决方法:读取配置文件前先刷新文件
// 刷新命名节,在下次检索它时将从磁盘重新读取它。
ConfigurationManager.RefreshSection("appSettings");
recordCount = Math.Abs(int.Parse(ConfigurationManager.AppSettings["RecordCount"]));
 
分析:.Net读取配置文件一般是从缓存中读取,修改配置文件后并不能影响缓存中的值,而读取前刷新文件,.Net会从硬盘文件中读取而不是从缓存中读取配置文件值
 
 
性能比较:
前置条件:app.config中有六个配置项
 
调用RefreshSection 后读取10000次:
var sw = new Stopwatch();
sw.Start();
 
for (int i = 0; i < 10000; i++)
{
ConfigurationManager.RefreshSection("appSettings");
object value = ConfigurationManager.AppSettings["RedisServer"];
}
TimeSpan ts = sw.Elapsed;
string elapsedTime = String.Format("{0:00}:时 {1:00}:分 {2:00}:秒:{3:00}:毫秒",
 ts.Hours, ts.Minutes, ts.Seconds,
 ts.Milliseconds / 10);
//00:时 00:分 07:秒:43:毫秒
string kk = elapsedTime;
 
不调用RefreshSection 后读取10000次:
var sw = new Stopwatch();
sw.Start();
 
for (int i = 0; i < 10000; i++)
{
object value = ConfigurationManager.AppSettings["RedisServer"];
}
 
TimeSpan ts = sw.Elapsed;
string elapsedTime = String.Format("{0:00}:时 {1:00}:分 {2:00}:秒:{3:00}:毫秒",
 ts.Hours, ts.Minutes, ts.Seconds,
 ts.Milliseconds / 10);
//00:时 00:分 00:秒:01:毫秒
string kk = elapsedTime;
 
 
结论:
使用RefreshSection先刷新文件在读取对性能影响还是很大的

解决Windows服务修改配置文件后必须重启的问题的更多相关文章

  1. 使用windows服务修改CPU型号(重启依然有效)

    此项目基于.net framework 4.0 效果如下: 服务运行前: 服务运行后: 思路大概是这样: 通过修改注册表可以修改CPU型号,把服务设置成本地服务,并且开机自动启动,来实现开机自动修改处 ...

  2. PHP 修改配置文件后重启命名

    centosPHP配置文件路径: /etc/php.ini 修改完配置文件后需要重启php服务: systemctl restart php-fpm

  3. Nginx学习系列三Nginx的启动、停止、修改配置文件后重启

    1.启动Nginx 命令规则:Ngxin的安装地址 -c Nginx的安装地址下的配置文件地址 注意:一般都在root权限下进行Nginx的启动 2.停止Nginx (1).从容停止 第一步:查看Ng ...

  4. windows服务更改配置文件

    现场部署的服务所在文件夹内容如上图所示,由于现场数据库服务器更改了IP,所以我服务里的数据库连接字符串也需要修改(注意到日志文件,从某天改了IP后就再也连不上数据库了) 修改过程: 1.打开服务管理, ...

  5. 更改windows服务的配置文件(app.config)必须重启服务才能生效吗?

    这个问题是前一阶段写windows服务碰到的.本来在写获取配置文件的某个配置的值的时候,通常我都是写类似下面的这么一个静态方法来获取: 1: /// <summary> 2: /// 获取 ...

  6. MYSQL修改配置文件之后无法重启服务

    错误:修改配置文件my.ini之后无法重启服务. 原因:以记事本方式打开my.ini文件修改完之后保存.保存之后文本编码格式为操作系统默认格式utf-8.my.ini格式要是ANSI才可以正常启动服务 ...

  7. Node.js热部署代码,实现修改代码后自动重启服务方便实时调试

    写PHP等脚本语言的时候,已经习惯了修改完代码直接打开浏览器去查看最新的效果.而Node.js 只有在第一次引用时才会去解析脚本文件,以后都会直接访问内存,避免重复载入,这种设计虽然有利于提高性能,却 ...

  8. 解决windows 服务中定时器timer 定时偶尔失效 问题

    最近做个windows 服务,功能是:定时执行一个任务:自动登录到一个网站后,点击相关网面上的按钮button. 在处理的过程中发现定时器老是不定时的失效,失效时间没有规律. 由于刚开始处于测试阶段, ...

  9. 解决Windows服务1053错误方法

    WCF使用MSMQ绑定寄宿在Windows服务上,但启动服务时出现1053错误 在网上搜索了N多解决方案,都是比较高深的扯到原理和系统bug等问题 看了看到最后也没有解决,最终我决定使用一个比较山寨的 ...

随机推荐

  1. php多虚拟主机配置

    一.配置httpd.conf# Virtual hosts#Include conf/extra/httpd-vhosts.conf       //取消这一行的# 二.配置httpd-vhosts. ...

  2. 重新认识REST

    大家对REST的认识? 谈到REST大家的第一印象就是通过http协议的GET,POST,DELETE,PUT方法实现对url资源的CRUD(创建.读取.更新和删除)操作.比如http://www.a ...

  3. 【BZOJ1419】 Red is good [期望DP]

    Red is good Time Limit: 10 Sec  Memory Limit: 64 MB[Submit][Status][Discuss] Description 桌面上有R张红牌和B张 ...

  4. Codeforces Round #301 解题报告

    感觉这次的题目顺序很不合理啊... A. Combination Lock   Scrooge McDuck keeps his most treasured savings in a home sa ...

  5. 【洛谷 P1363】幻想迷宫(搜索)

    这题其实可以很简单. 题目叫做"幻想迷宫",那么我们就幻想一个迷宫. 借用一下@FancyDreams的图片 只有左上角第一个\(5*4\)的迷宫是真的, 其他都是我们幻想出来的. ...

  6. requests-html的js执行功能简单使用

    #!/usr/bin/env python # encoding: utf-8 import asyncio from requests_html import HTMLSession import ...

  7. kafka 分区数

    Kafka的分区,相当于把一个Topic再细分成了多个通道(对应 多个线程) 部署的时候尽量做到一个消费者(线程)对应一个分区. 如何确定Kafka的分区数,key和consumer线程数,以及不消费 ...

  8. rosbag使用--记录深度相机数据

    首先看一下教程: http://wiki.ros.org/openni_launch/Tutorials/BagRecordingPlayback 知道了rosbag如何进行使用记录深度数据 但是按照 ...

  9. CSS入门之定义和应用格式

    1:定义 1:定义单个属性 property:value 例如: color:white(属性和值之间用冒号隔开) 2:定义多个属性 property:value;property:value 例如: ...

  10. hdu5794

    从(u,v)到(n,m)相当于走x步1*2和y步2*1满足 x+2y=n-u,2x+y=m-v 解方程然后组合计数即可. 以前没写过lucas定理,写一下…… 其实就是C(n,m)%p=C(n/p,m ...