ASP.NET 組態概觀

更新:2007 年 11 月

您可以使用 ASP.NET 組態系統的功能,設定整個伺服器上所有的 ASP.NET 應用程式、單一 ASP.NET 應用程式、個別網頁或應用程式子目錄。您可以設定像是驗證模式、網頁快取、編譯器選項、自訂錯誤、偵錯和追蹤選項以及更多的功能。

下列章節說明 ASP.NET 組態系統的功能。

如需設定 .NET Framework 用戶端應用程式的詳細資訊,請參閱設定應用程式

注意事項:

ASP.NET 組態系統的功能只適用於 ASP.NET 資源。例如,「表單驗證」只會限制存取 ASP.NET 檔,而不會限制靜態檔或 ASP (一般) 檔 (除非這些資源對應到 ASP.NET 副檔名)。使用網際網路資訊服務 (IIS) 的組態功能設定非 ASP.NET 資源。如需詳細資訊,請參閱使用 IIS MetabaseIIS Metabase 屬性參考

組態檔

ASP.NET 組態資料儲存在每個名為 Web.config 的 XML 文字檔中。Web.config 檔可以出現在 ASP.NET 應用程式的多個目錄中。這些檔案可以讓您在應用程式部署到伺服器之前、在部署過程中,或是在部署後輕鬆編輯組態資料。您可以使用標準文字編輯器、ASP.NET MMC 嵌入式管理單元、網站管理工具或 ASP.NET 組態 API 建立和編輯 ASP.NET 組態檔。

ASP.NET 組態檔可以將應用程式組態設定與應用程式程式碼分開。將組態資料與程式碼分開可以讓您輕鬆地使設定與應用程式產生關聯、在部署應用程式後依需要變更設定,以及擴充組態結構描述。

如需如何在 ASP.NET 組態檔中組織資料的詳細資訊,請參閱 ASP.NET 組態檔ASP.NET 組態設定中有說明可用的組態設定。

組態檔階層架構和繼承

每個 Web.config 檔會將組態設定套用至檔案所在的目錄,以及其下的所有子目錄。子目錄中的設定可以選擇性地覆寫,或修改父目錄中指定的設定。Web.config 檔中的組態設定可以藉由在位置項目中指定路徑,選擇性地套用至個別檔案或子目錄。

ASP.NET 組態階層架構的根目錄是 systemroot\Microsoft.NET\Framework\versionNumber\CONFIG\Web.config 檔,這個檔案包含的設定套用至執行特定 .NET Framework 版本的所有 ASP.NET 應用程式。因為每個 ASP.NET 應用程式都從根 Web.config 檔案繼承預設組態設定,所以只需要為覆寫預設值的設定建立 Web.config 檔案。

注意事項:

根目錄 Web.config 檔會從 Machine.config 檔 (位於相同目錄中) 繼承某些基本組態設定。在 Web.config 檔中無法覆寫這些設定的其中一部分。如需詳細資訊,請參閱 ASP.NET 組態檔階層架構和繼承

在執行階段,ASP.NET 會使用 Web.config 檔以階層方式,為每個收到的 URL 要求的組態設定計算唯一集合。這些設定只會計算一次,然後會快取在伺服器上。ASP.NET 會偵測組態檔的任何變更,然後自動將這些變更套用至受影響的應用程式,在大部分的情況下會重新啟動應用程式。當階層架構中的組態檔有變更時,就會再次自動計算並快取階層式組態設定。除非有變更 processModel 區段,否則不需要為了讓變更生效而重新啟動 IIS 伺服器。

如需 ASP.NET 組態階層架構運作方式的詳細資訊,請參閱 ASP.NET 組態檔階層架構和繼承ASP.NET 組態案例

直接編輯組態檔

您可以使用文字編輯器或 XML 編輯器直接編輯組態檔。如需正確語法的資訊,請參閱 ASP.NET 組態設定一般組態設定 (ASP.NET) 之組態區段中的參考主題。如需詳細資訊,請參閱編輯 ASP.NET 組態檔

ASP.NET 3.5 Web.config 檔案中的其他組態項目

針對 .NET Framework 3.5 版所建置之 ASP.NET 應用程式的 Web.config 檔案包含舊版 Web.config 檔案所沒有的組態項目。當您在 .NET Framework 3.5 版中開啟現有網站或針對 .NET Framework 3.5 版升級網站時,也會建立這個擴充 Web.config 檔案。在後面的情況下,Visual Studio 會更新應用程式的 Web.config 檔案,以包含其他組態項目。

下表顯示新組態項目和舊版 .NET Framework 組態項目的變更。

組態項目

3.5 版中的變更

system.codedom

(新區段) 指定 .NET Framework 程式碼文件物件模型 (CodeDOM) 在執行階段編譯原始程式碼的方式。

configSections

(新區段) 定義 ASP.NET AJAX 使用的 system.web.extensions 區段,以定義從用戶端指令碼呼叫 Web 服務的方式。如需詳細資訊,請參閱 ASP.NET AJAX 中的 Web 服務

assemblies

(compilation 項目中的新區段) 指定編譯 ASP.NET 網頁時參考的組件集合。這個區段包含 ASP.NET 3.5 版的新組件。

namespaces

(更新區段) 這個區段會指定預設匯入哪些命名空間。Linq、Linq 和 Generic 命名空間已加入。

controls

(更新區段) 這個區段會註冊包含控制項的組件,並提供前置詞以參考控制項,類似於 ASP.NET Web 網頁的指示詞 頁面指示詞註冊個別頁面中之控制項的方式。根據預設,這個區段會註冊 Extensions 組件中的控制項。這些控制項包括 ListView 控制項以及與 AJAX 相關的控制項。

system.webServer

這個區段會取代 httpHandlers 和 httpModules 區段中加入的 AJAX 相關 HTTP 處理常式和模組。在整合模式中執行時,這個區段會使處理常式和模組可用於 IIS 7.0。

assemblyBinding

(更新區段) 這個區段會指引執行階段使用 ASP.NET 3.5 版中的 ASP.NET AJAX 架構,而非舊版 ASP.NET AJAX 架構。

組態工具

ASP.NET 組態系統提供的工具比使用文字編輯器編輯應用程式組態更輕鬆,因為工具中包含錯誤偵測。

ASP.NET MMC 嵌入式管理單元

ASP.NET 的 Microsoft 管理主控台 (MMC) 嵌入式管理單元,可以讓您輕鬆管理本機或遠端 Web 伺服器上所有層級的 ASP.NET 組態設定。ASP.NET MMC 嵌入式管理單元使用 ASP.NET 組態 API,但是會藉由提供圖形化使用者介面 (GUI) 而簡化編輯組態設定的程序。此外,這個工具也支援 ASP.NET 組態 API 功能以控制 Web 應用程式是否能夠繼承設定,以及管理組態階層架構層級之間的相依性。

注意事項:

若要使用 ASP.NET MMC 嵌入式管理單元,您必須使用擁有系統管理權限的帳戶登入電腦。

ASP.NET MMC 嵌入式管理單元會在虛擬目錄的屬性工作表中,以 [ASP.NET] 索引標籤的方式出現。

如需詳細資訊,請參閱 ASP.NET 的 MMC 嵌入式管理單元

網站管理工具

網站管理工具可以讓任何擁有網站系統管理權限的使用者管理網站的組態設定。網站管理工具是用來提供方便使用的圖形化編輯工具,編輯個別網站中最常使用的組態設定。因為這個工具使用瀏覽器架構介面,所以可以讓您從遠端變更網站設定,在管理已經部署為實際執行 Web 伺服器 (例如已裝載的網站) 的站台上很有用處。

網站管理工具與 ASP.NET MMC 嵌入式管理單元有一些地方不同。例如,ASP.NET MMC 嵌入式管理單元適合系統管理員層級的組態,因為它提供對 Web 伺服器上整個組態檔階層架構的存取,而不是單一網站的組態設定。因此,您也必須是系統管理員才能夠使用 ASP.NET MMC 嵌入式管理單元,而網站管理工具只允許個別網站擁有者,設定擁有系統管理員權限之站台根目錄中的 Web.config 檔。最後,您無法使用 ASP.NET MMC 嵌入式管理單元遠端管理 IIS,但是網站管理工具的瀏覽器介面可以遠端設定從 6.0 版開始的 IIS 版本。

網站管理工具包含群組下列索引標籤中相關組態設定的索引介面:

  • [安全性] 索引標籤,其中包含保護 Web 應用程式資源安全以及管理使用者帳戶與角色的設定

  • [設定檔] 索引標籤,其中包含管理網站如何收集造訪者資訊的設定

  • [應用程式] 索引標籤,其中包含管理影響 ASP.NET 應用程式的組態項目設定

  • [提供者] 索引標籤,其中包含加入、編輯、刪除、測試或指派應用程式提供者的設定

安裝 .NET Framework 2.0 版 (含) 以後版本時,也會自動安裝網站管理工具。如需這個工具如何運作的資訊,請參閱 ASP.NET 網站管理工具

命令列工具

.NET Framework 包含執行特定組態作業的命令列工具。例如,Aspnet_regiis.exe 工具可以讓您指定套用至 ASP.NET 應用程式的 .NET Framework 版本。如需詳細資訊,請參閱 .NET Framework 工具

ASP.NET 組態 API

ASP.NET 組態系統提供完整的管理介面,在不需直接編輯 XML 組態檔的情況下,以程式設計的方式設定 ASP.NET 應用程式。此外,ASP.NET 組態 API 也提供下列功能:

  • 提供組態階層架構所有層級資料的整合式檢視,簡化管理工作

  • 支援部署工作,包含建立組態和使用單一指令碼設定多部電腦

  • 提供單一程式設計介面,讓開發人員用來建置 ASP.NET 應用程式、主控台應用程式和指令碼、Web 架構管理工具,以及 MMC 嵌入式管理單元

  • 防止開發人員和系統管理員做出無效的組態設定

  • 讓您擴充組態結構描述。您可以定義新組態參數,並撰寫組態區段處理常式來加以處理

  • 提供靜態方法以取得目前執行應用程式的組態資訊,並提供非靜態方法取得不同應用程式的組態資訊。使用靜態方法可以讓應用程式執行速度加快,但是這些方法只能使用在想要取得其組態資料的應用程式中

如需詳細資訊,請參閱 ASP.NET 組態 API

組態安全性

ASP.NET 組態系統會協助保護組態檔不讓未經授權的使用者存取。ASP.NET 會設定 IIS 拒絕要求存取 Machine.config 或 Web.config 檔的任何瀏覽器存取。任何嘗試直接要求組態檔的瀏覽器,都會收到 HTTP 存取錯誤 403 (禁止) 的訊息。

此外,也會防止 ASP.NET 應用程式中的組態檔存取其他 ASP.NET 應用程式中的組態設定,除非執行組態應用程式的帳戶有權限讀取其他應用程式中的組態檔,並且以完全信任方式執行。

如需詳細資訊,請參閱保護 ASP.NET 組態使用受保護的組態加密組態資訊

請參閱

工作

逐步解說:使用 MMC 設定 IIS 6.0 中的 ASP.NET 應用程式

逐步解說:在 IIS 7.0 中設定 ASP.NET 應用程式

概念

ASP.NET 組態檔階層架構和繼承

保護 ASP.NET 組態

其他資源

ASP.NET 組態 API

ASP.NET 組態檔

ASP.NET 的 MMC 嵌入式管理單元

ASP.NET 網站管理工具

ASP.NET 組態設定

一般組態設定 (ASP.NET)

使用受保護的組態加密組態資訊

ASP.NET 和 IIS 組態