Web.Config檔案中使用configSource

來源:互聯網
上載者:User

我們都知道,在asp.net中修改了設定檔web.config後,會導致應用程式重啟,所有會話(session)丟失。然而,應用程式的配置資訊放在設定檔裡是最佳選擇,在後台修改了配置後導致所有會話丟失是非常不爽的事情,這個時候可將設定檔中經常需要改變的參數配置節放到外面來,例如appSetting節。

 1.來個最簡單的小例子

<?xml version="1.0"?><configuration>  <appSettings>    <add key="test" value="aehyok"/>  </appSettings></configuration>

 然後在代碼中進行調用,我在VS2010中建的是控制台程式,當然還需要添加引用System.Configuration;

namespace ConsoleApplication1{    class Program    {        static void Main(string[] args)        {            string str = ConfigurationManager.AppSettings["test"].ToString();            Console.WriteLine(str);            Console.ReadLine();        }    }}

2.接下來看看最佳化後的設定檔結構,先來看看原來的設定檔的修改

<?xml version="1.0"?><configuration>  <appSettings configSource="config\My.config" /></configuration>

然後在項目中添加一個Config檔案夾,再在其中添加一個設定檔My.config
其中結構如下

<?xml version="1.0" encoding="utf-8" ?><appSettings>  <add key="test" value="aehyok"/></appSettings>

這樣子照樣可以進行讀取設定檔。

現在可以在一個單獨檔案包括所有支援 configSource 屬性的配置元素的配置設定。但是,當使用 configSource 屬性時,由於沒有元素設定的合并,因此您必須將整個節移動到單獨檔案。使用 configSource 屬性時,對 Web.config 檔案有一次寫入操作。這會導致應用程式重新啟動,但是隨後對該節的更新會直接寫入單獨檔案,而不會導致後面的應用程式重新啟動。

只能包含一次configSource;

在網站運行時,如果修改 Web.Config 檔案會引起網站的重啟,而修改 My.Config 檔案則不會,同時也提高了設定檔的可讀性

注意,configSouce中的檔案路徑只能為相對實體路徑,也就是只能為反斜線(\),不能用斜杠(/)。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.