Config文件修改與IIS重啟應用程序域(轉)


 

 

1. machine.config 文件中的restartOnExternalChanges屬性,指定對外部配置包含文件進行更改后是否需要重新啟動應用程序。設置為false即不會重啟應用程序。注意是外部文件,而非web.config文件本身。

修改web.config肯定還會重新啟動應用程序域的,Web還是會斷線,有點像百貨公司把大家都趕出來,再開門讓大家進來。

configSource屬性對web.config進 行拆分。如

<profile configSource="profile.config" restartOnExternalChanges="true" />

默認情況下,如果特定配置節的 config文件內容更改,iis是察覺不到的,所以不會重啟程序池。 假如你需要在 特定配置節config文件修改后能讓iis自動察覺到並進行重啟, 可以利用 RestartOnExternalChanges屬性,設置為true。

2. 另外其他會重啟應用程序的條件

上傳DLL 重啟服務器 重啟iis 有目錄被刪除時

3. 關於拆分web.config文件分而治之從以下幾點考慮:

    a. 經常發生變化

    某些配置節我們在開發時經常要修改或更新,如果能單獨拉出來進行配置,這樣修改時就不必碰web.config。     不同環境下的web.config都引用了同一個配置節config,所以這樣的修改只需要做一次,而不必去修改所有環境的web.config。

    b. 內容行數特別多

    有時候web.config里有些配置節 都是一大坨一大坨的,影響了web.config整體的審美觀。     我們完全可以把這些大 坨的配置節內容單獨抽取出來,     這樣一來,web.config就簡潔多了,也便於閱讀 。     c. 不同環境下,配置節內容是不一樣的

    我們經常會有這樣的配置節,     對於這種情況,我們完全可以考慮拆分出來, 並且生成不同環境下的配置文件。     而不同環境下的web.config只要引用對應環境的配置節文件即可。     即使環境發生了變化,     我們也不需要去動web.config,     只要去修改相應環境下配置節文件即可。

當然,以上這三種特征不是互斥的 ,很可能某一配置節含有以上兩種或三種特征。這些配置節更需要我們認真對待,通過多重策略來進行拆分。

4. 分而治之怎么能各得其所,命名規則上來區分

    如果web.config很復雜,     那拆分后的結果可能會多出一堆***.config文件,     所以我們需要一套簡單有效的命名規范來管理好這么多配置文件。

    a. Web.config:在不同環境下的文件         可以命名為Web.local.config, Web.beta.config, Web.release.config

   b. 特征1,2配置節文件:        可以取配置節的名字來命名文件,        比如profile.config,        規范一下應該是Web.profiling.config,        類似還有Web.httpHanders.config, Web.httpModules.config等等。

   c. 特征3配置節文件:        假如有個dbConfig配 置節(不同環境下的數據庫連接配置),        我們可以命名為        Web.dbConfig.local.config,        Web.dbConfig.beta.config,        Web.dbConfig.release.config。

通過分而治之的管理和規范的命名, 我們就可以輕松地進行配置管理,而不必整天面對那一大坨 看似一樣 又有些不太一樣配置節點。1-1-6*2-3-2*6-3*8-9


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM