本文說明如何在 ASP.NET 中設定應用程式專屬和目錄特定的組態設定。
原始產品版本: ASP.NET
原始 KB 編號: 815174
摘要
Web.config 檔案位於 ASP.NET 應用程式的根目錄中。 Web.config 檔案會指定應用程式專屬的組態資訊。 您也可以根據每個目錄設定組態設定。 執行此作業的方法有兩種:
將多個 Web.config 檔案散發至應用程式中的目錄。 在 ASP.NET 應用程式目錄中新增 Web.config 檔案,其設定會覆寫較高層級 Web.config 檔案中的設定,或在系統計算機組態 (Machine.config) 檔案中覆寫設定。
將個別目錄或個別檔案設定直接新增至應用程式 Web.config 檔案。 此方法會使用單 一 Web.config 檔案來開啟每個目錄組態設定。 您也可以在 Machine.config 檔案中使用此方法,強制 ASP.NET Web 應用程式的組態設定,然後停止 Web.config 檔案覆寫 Machine.config 設定。
使用 Machine.config 檔案中的 location 元素
若要指定套用至 Web 應用程式或目錄的設定,您可以將 專案新增 <location>
至 <configuration>
system Machine.config 檔案的 元素。 當您將組態設定集中在單一檔案中時,會很有用。 在 Web 裝載環境中,在個別 Web 應用程式上授權特定組態設定也很有用。
元素 <location>
包含兩個屬性與 path
allowOverride
。 屬性 path
會定義組態設定涵蓋的月臺或虛擬目錄。 若要指定 元素中的 <location>
設定套用至預設網站,請將 屬性設定 path
為 Default Web Site
。 若要指定設定會套用至預設網站中名為 MyApp 的應用程式,請將 屬性設定 path
為 Default Web Site/MyApp
。
allowOverride
當屬性為 false 時,Web 應用程式目錄中的 Web.config 檔案無法覆寫您在 元素中指定的<location>
設定。 在您必須限制應用程式開發人員如何設定 Web 應用程式的環境中,這是一個實用的設定。 下列範例顯示 Machine.config 檔案的一部分。 檔案需要驗證才能存取默認網站上的 MyApp 應用程式,而且無法覆寫 Web.config 檔案中的設定。
<configuration>
<location path="Default Web Site/MyApp" allowOverride="false">
<system.web>
<authorization>
<allow users="?" />
</authorization>
</system.web>
</location>
</configuration>
使用 Web.config 檔案中的 location 元素
若要指定套用至特定應用程式或目錄的設定,請將 專案新增 <location>
至 <configuration>
應用程式 Web.config 檔案的 元素。 元素<location>
通常包含<system.web>
元素和其他組態專案,與您在 Web.config 檔案中使用的專案完全相同。 項目的 path
屬性 <location>
會指定套用位置組態專案的虛擬目錄或檔名。 下列範例顯示應用程式 Web.config 檔案的一部分,該檔案會指定論壇虛擬目錄的自定義錯誤訊息。
<configuration>
<location path="forum" >
<system.web>
<customErrors mode="RemoteOnly" defaultRedirect="forum-error.aspx">
<error statusCode="404" redirect="forum-file-not-found.aspx" />
</customErrors>
</system.web>
</location>
</configuration>