正在加载......
仅一羊,已亡,补之已晚;仅一世,而立,不奋而憾!我的博客园阵地(http://www.cnblogs.com/vincentluo)

原创windows服务获取config更新后的value值--解决办法


一、前言
     在建立的windows服务中,正式发布之前需要不断测试,这个时候就需要频繁的更改app.config配置文件,但是问题就出来了,更新配置文件之 后,并没有立即生效,而是取到更改前的值,原因究竟出在哪里.....

二、无法读取的写法


更改之前 获取config的写法 string TimeValue= ConfigurationManager.AppSettings["TimeValue"];


     这个确实没有,立即检查原因,为什么更改之后没有立即生效,先停掉服务、重新编译项目,然后再启动服务,这个时候发现没有问题。 问题也确实解决了,但是这样的解决办法实在是太慢了。


三、分析得出结论

     更改配置文件之后,他读取的顺 序不是从物理文件读取,必须强制刷新配置文件,才能读取到更改后的配置节信息  

四、正确的写法

更 改之后 获取config的写法private string timeValue;
        public string TimeValue
        {
            get
            {
                ConfigurationManager.RefreshSection("appSettings");                  
                dtSend = ConfigurationManager.AppSettings["TimeValue"];
                return timeValue;
            }            
     


    
五、原因       

      为什么要加上ConfigurationManager.RefreshSection("appSettings");
 元数据的解释是这样的:刷新命名节,这样在下次检索它时将从磁盘重新读取。
              
六、结束

 
    如果有错误,请各位指点,谢谢!

    希望这篇文章能给你带来帮助。


     原文来自:http://stackoverflow.com/questions/590791/do-you-have-to-restart-a- windows-service-if-you-change-the-app-config/2743097#2743097

上海租车  注册香港公司  租车  香港公司注册


发表评论

昵称 (必填)

邮箱 (必填且保护)

网址 (选填:http://www.baidu.com)

      

      

本站工具

管理



Copyright © 2009 - 2010  伊牛娃   |  沪ICP备09007324号   
点击这里给我发消息