windows服務擷取config更新後的value值–解決辦法

來源:互聯網
上載者:User

 

一、前言
     在建立的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

     同步發表於:伊牛娃的部落格

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.