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

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

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

Zusammenfassung

Die Web.config Datei befindet sich im Stammverzeichnis einer ASP.NET Anwendung. Die dateiWeb.config gibt Konfigurationsinformationen an, die für die Anwendung spezifisch sind. Sie können Konfigurationseinstellungen auch auf Verzeichnisbasis festlegen. Dazu 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 Datei auf höherer Ebene Web.config oder in der Systemcomputerkonfigurationsdatei (Machine.config) überschreiben.

  • Fügen Sie einstellungen pro Verzeichnis oder pro Datei direkt zur Datei Web.configAnwendung hinzu. Diese Methode verwendet eine einzelne Web.config Datei, um die Konfigurationseinstellungen pro Verzeichnis 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 Speicherortelements in der Machine.config Datei

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

Das <location> Element enthält zwei Attribute und path 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 sollen, legen Sie das path Attribut auf Default Web Site . Um anzugeben, dass die Einstellungen für die Anwendung mit dem Namen "MyApp" auf der Standardwebsite gelten, legen Sie das path Attribut auf Default Web Site/MyApp .

Wenn das allowOverride Attribut "false" ist, können die Web.config Dateien in den Webanwendungsverzeichnissen die Einstellungen, die Sie im Element angegeben haben, nicht <location> überschreiben. Dies ist eine nützliche Einstellung in Umgebungen, in denen Sie Anwendungsentwickler bei der Konfiguration einer Webanwendung einschränken müssen. Das folgende Beispiel zeigt einen Teil einer Machine.config Datei. Die Datei erfordert eine Authentifizierung für den Zugriff auf die MyApp-Anwendung auf der Standardwebsite 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 Speicherortelements 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 Element einer Anwendung <configuration> Web.config Datei hinzu. Das <location> Element enthält in der Regel ein Element und andere <system.web> Konfigurationselemente genau so, wie Sie es in der dateiWeb.config verwenden. Das path Attribut des Elements gibt das virtuelle Verzeichnis oder den <location> Dateinamen an, auf das die Speicherortkonfigurationselemente angewendet werden. 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