2010-08-25 72 views

回答

16

它們都被緩存。

配置在啓動時讀取一次。使用web.config,IIS監視文件更改並重新啓動應用程序。

4

當應用程序加載時,將讀取Web.config(不包括外部配置文件)。一些配置設置具有級聯行爲。例如,system.web/authorization部分可以被更深層次的配置覆蓋。

ASP.NET監視web.config以進行更改。當它改變時,Web應用程序被強制重啓。道德是web.config設置緩存的應用程序的生命。

8

好的,所以你們在Web.Config文件的區域缺少一個KEY功能。

是的,web.config被緩存,並且文件內容的更改將重新啓動您的Web應用程序。而且,您所有的連接用戶也不會很開心,因爲他們需要「重新連接」新的,可能會丟失所需的信息。

所以,請爲您的AppSettings一個外部自定義文件,內容如下:

<appSettings configSource="MyCustom_AppSettings.config"/> 

然後,在文件MyCustom_AppSettings.config文件,你有你的設置,因此這個例子有:

<appSettings> 

    <!-- AppSecurity Settings --> 
    <add key="AppStatus_Active" value="Active"/> 

    <!-- Application Info Settings --> 
    <add key="AppID" value="25"/> 
    <add key="AppName" value="MyCoolApp"/> 
    <add key="AppVersion" value="20120307_162344"/> 
</appSettings> 

現在,如果你需要添加,更改或刪除AppSetting,當你在這個文件中改變它的變化是在你的web應用程序(幾乎即時的和這裏的BEST部分),您的應用程序沒有重新啓動

除了在外部.config文件中添加/修改/刪除的設置之外,一切都會保持清晰。

而且,是的,相同東西可以爲部分完成如下:

<connectionStrings configSource="MyCustomApp_ConnectionStrings.config"/> 

和文件MyCustomApp_ConnectionStrings.config有你需要的所有連接字符串。更改外部.config文件中的連接字符串,並立即開始使用並且無需重新啓動Web-app。

當您需要部署到不同框的開發,測試和生產並需要與給定框/環境相關的設置時,configSource設置非常棒。

所以,現在你知道(已經存在了7年以上的東西)。

就這麼簡單。真。

KC

+0

這真的很有幫助! – 2017-04-04 11:15:25