使用組態檔設定應用程式
.NET Framework 透過組態檔賦予開發人員和管理員對於應用程式執行方式的控制和彈性。 組態檔是可以按需要變更的 XML 檔。 系統管員能夠控制應用程式可以存取哪些受保護的資源、應用程式將使用之組件的版本為何,以及遠端應用程式和物件要位於何處。 開發人員則可以將設定值置於組態檔,排除每當設定值變更時重新編譯應用程式的需要。 本章節說明可以設定些什麼以及設定應用程式會很有用處的原因。
注意
Managed 程式碼可以使用 System.Configuration 命名空間中的類別,以讀取 (而非寫入) 組態檔設定。
本文描述設定檔的語法,並提供有關設定檔的三種資訊:電腦、應用程式和安全性。
設定檔案格式
組態檔包含一些項目,為設定組態資訊的邏輯資料結構。 在組態檔內,您要使用標記 (Tag) 來標記項目的開頭和結尾。 例如,<runtime>
項目是由 <runtime>
child elements</runtime>
所組成。 空白項目會寫成 <runtime/>
或 <runtime></runtime>
。
就如同所有的 XML 檔,組態檔中的語法要區分大小寫。
您要使用預先定義的屬性 (項目之開始標記內的名稱/值組) 來指定組態設定。 下列範例會為 <codeBase>
項目指定兩個屬性 (version
與 href
),以指定執行階段可以找到組件的位置 (如需詳細資料,請參閱指定組件的位置)。
<codeBase version="2.0.0.0"
href="http://www.litwareinc.com/myAssembly.dll"/>
電腦設定檔
電腦設定檔 Machine.config 包含套用於整個電腦的設定值。 這個檔案位於 %runtime install path%\Config 目錄中。 Machine.config 包含全電腦的組件繫結、內建遠端通道和 ASP.NET 的組態設定。
設定系統首先會在電腦設定檔中尋找 <appSettings> 元素以及開發人員可能定義的其他設定區段。 接著會查看應用程式組態檔。 若要讓電腦組態檔易於管理,最好將這些設定值放在應用程式組態檔中。 然而,將設定值置於電腦組態檔可讓您的系統更容易維護。 例如,如果您有用戶端和伺服器應用程式都使用到的協力廠商元件,將那元件的設定值放在一個地方會比較容易。 在這個情況中,電腦組態檔是設定值的適當位置,所以您在兩個不同檔案中沒有相同的設定值。
注意
使用 XCOPY 部署應用程式將不會複製電腦組態檔中的設定值。
如需 Common Language Runtime 如何使用電腦組態檔執行組件繫結的詳細資訊,請參閱執行階段如何找出組件。
應用程式組態檔
應用程式組態檔包含應用程式特有的設定值。 這個檔案包含通用語言執行平台讀取的組態設定 (例如組件繫結原則、遠端處理物件等) 以及應用程式可以讀取的設定值。
應用程式組態檔的名稱和位置取決於應用程式的主應用程式 (Host),可以是下列其中一個:
可執行檔裝載的應用程式。
這些應用程式有兩個設定檔:一個是來源設定檔,開發人員會在開發期間修改這個設定檔,另一個是隨應用程式散發的輸出檔。
根據預設,來源組態檔的名稱為 App.config。當您在 Visual Studio 中建立 .NET Framework 專案時,會自動將 App.config 檔案新增至專案。 您也可以藉由選取 [檔案]> [新增檔案],手動新增檔案。 將 App.config 檔案放在專案目錄中,並將其複製到輸出目錄屬性設定為一律複製或有更新時才複製。
若要建立使用此應用程式部署的輸出設定檔,Visual Studio 會將來源設定檔複製到編譯組件所在的目錄中。 此檔案名為 <yourappname>.exe.config。例如,名為 myApp.exe 的應用程式具有名為 myApp.exe.config 的輸出組態檔。
在某些情況下,Visual Studio 可能會修改輸出組態檔。 如需詳細資訊,請參閱重新導向組件版本中的在應用程式層級重新導向版本。
ASP.NET 裝載的應用程式。
如需 ASP.NET 組態檔的詳細資訊,請參閱 ASP.NET 組態設定。
安全設定檔
安全組態檔包含程式碼群組階層架構和與原則層級相關聯的使用權限集合的資訊。 強烈建議您使用程式碼存取安全性原則工具 (Caspol.exe) 修改安全性原則,確保原則變更不會造成安全性組態檔損毀。
注意
從 .NET Framework 4 開始,安全性設定檔只有在安全性原則已變更時才會出現。
安全性組態檔位於下列位置:
企業原則組態檔:%runtime-install-path%\Config\Enterprisesec.config
電腦原則組態檔:%runtime-install-path%\Config\Security.config
使用者原則組態檔:%USERPROFILE%\Application data\Microsoft\CLR security config\vxx.xx\Security.config