在 ASP.NET 應用程式中設定應用程式和目錄特定組態設定

本文說明如何在 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 檔案中的位置專案

若要指定套用至 Web 應用程式或目錄的設定,您可以將 專案新 <location> 增至 <configuration> 系統 Machine.config 檔的 元素。 當您在單一檔案中集中設定組態時,這會很有用。 在 Web 裝載環境中,在個別 Web 應用程式上強制執行特定組態設定也很有用。

專案 <location> 包含兩個屬性: pathallowOverride。 屬性 path 會定義組態設定所涵蓋的月臺或虛擬目錄。 若要指定項目中的 <location> 設定套用至預設網站,請將 屬性設定 pathDefault Web Site。 若要指定設定套用至預設網站中名為 MyApp 的應用程式,請將 屬性設定 pathDefault 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> 增至 <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>

參考資料