Festlegen anwendungs- und verzeichnisspezifischer Konfigurationseinstellungen in einer ASP.NET-Anwendung

In diesem Artikel wird beschrieben, wie Sie anwendungs- und verzeichnisspezifische Konfigurationseinstellungen in ASP.NET.

              Originale Produktversion: ASP.NET
Ursprüngliche KB-Nummer: 815174

Zusammenfassung

Die Web.config-Datei befindet sich im Stammverzeichnis einer ASP.NET Anwendung. Die Web.config-Datei gibt Anwendungsspezifische Konfigurationsinformationen an. Sie können die Konfigurationseinstellungen auch auf Verzeichnisbasis festlegen. Hierfür gibt es zwei Möglichkeiten:

  • Verteilen Sie mehrere Web.config-Dateien an Verzeichnisse in der Anwendung. Fügen Sie eine Web.config-Datei im ASP.NET Anwendungsverzeichnis mit Einstellungen hinzu, die Einstellungen in einer übergeordneten Web.config-Datei oder in der Systemcomputerkonfigurationsdatei (Machine.config) überschreiben.

  • Fügen Sie einstellungen pro Verzeichnis oder datei direkt zur Anwendung Web.config-Datei hinzu. Bei dieser Methode wird eine einzelne Web.config-Datei verwendet, um verzeichnisspezifische Konfigurationseinstellungen zu aktivieren. Sie können diese Methode auch in der Machine.config-Datei verwenden, um Konfigurationseinstellungen für ASP.NET Webanwendungen zu erzwingen und dann zu verhindern , dassWeb.config Dateien Machine.config Einstellungen überschreiben.

Verwenden des location-Elements in der Machine.config-Datei

Um Einstellungen anzugeben, die für eine Webanwendung oder ein Verzeichnis gelten, können Sie das <location> -Element dem <configuration> -Element einer System -Machine.config-Datei hinzufügen. Dies ist nützlich, wenn Sie Konfigurationseinstellungen in einer einzelnen Datei zentralisieren. Es ist auch in Webhostingumgebungen nützlich, bestimmte Konfigurationseinstellungen für einzelne Webanwendungen vorzudedienen.

Das <location> -Element enthält zwei Attribute: path und allowOverride. Das path Attribut definiert den Standort oder das virtuelle Verzeichnis, das von den Konfigurationseinstellungen abgedeckt wird. Um anzugeben, dass die Einstellungen im <location> -Element auf die Standardwebsite angewendet werden, legen Sie das path -Attribut auf fest Default Web Site. Um anzugeben, dass die Einstellungen für die Anwendung gelten, die auf der Standardwebsite MyApp heißt, legen Sie das path -Attribut auf fest Default Web Site/MyApp.

Wenn das allowOverride Attribut false ist, können die Web.config Dateien in den Webanwendungsverzeichnissen die einstellungen, die Sie im <location> -Element angegeben haben, nicht überschreiben. Dies ist eine nützliche Einstellung in Umgebungen, in denen Sie Anwendungsentwickler in der Konfiguration einer Webanwendung einschränken müssen. Das folgende Beispiel zeigt einen Teil einer Machine.config-Datei . Die Datei erfordert eine Authentifizierung, um auf die MyApp-Anwendung auf der Standardwebsite zuzugreifen, und kann nicht durch Einstellungen in einer Web.config-Datei überschrieben werden.

<configuration>
    <location path="Default Web Site/MyApp" allowOverride="false">
        <system.web>
            <authorization>
                <allow users="?" />
            </authorization>
        </system.web>
    </location>
</configuration>

Verwenden des location-Elements in der Web.config-Datei

Um Einstellungen anzugeben, die für eine bestimmte Anwendung oder ein bestimmtes Verzeichnis gelten, fügen Sie das <location> -Element dem <configuration> -Element einer Anwendung Web.config-Datei hinzu. Das <location> -Element enthält in der Regel ein <system.web> -Element und andere Konfigurationselemente genau so, wie Sie sie in der Web.config-Datei verwenden. Das path -Attribut des <location> -Elements gibt das virtuelle Verzeichnis oder den Dateinamen an, in dem die Speicherortkonfigurationselemente gelten. Das folgende Beispiel zeigt einen Teil einer Anwendung Web.config Datei, die benutzerdefinierte Fehlermeldungen für das virtuelle Forumverzeichnis angibt.

<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>

References