Struktur der ASP.NET-Konfigurationsdatei (Abschnitte und Abschnittshandler)

Aktualisiert: November 2007

Alle ASP.NET-Konfigurationsinformationen befinden sich im configuration-Element der jeweiligen Datei Web.config. Die Konfigurationsinformationen innerhalb dieses Elements sind in zwei Hauptbereiche untergliedert: den Deklarationsbereich des Konfigurationsabschnittshandlers und den Bereich mit Konfigurationsabschnittseinstellungen.

Deklarationen des Konfigurationsabschnittshandlers

Der Deklarationsbereich des Konfigurationsabschnittshandlers befindet sich im configSections-Element der jeweiligen Datei Web.config. Er enthält section-Elemente für die ASP.NET-Konfiguration, in denen Abschnittshandler deklariert werden. Diese Deklarationen des Konfigurationsabschnittshandlers können zur besseren Organisation der Konfigurationsinformationen in sectionGroup-Elemente geschachtelt sein. Meist stellen die sectionGroup-Elemente den Namespace dar, für den die Konfigurationseinstellungen gelten. Beispielsweise sind alle ASP.NET-Konfigurationsabschnittshandler in der system.web-Abschnittsgruppe zusammengefasst, wie im folgenden Codebeispiel gezeigt.

    <sectionGroup name="system.web"
      type="System.Web.Configuration.SystemWebSectionGroup, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
      <!-- <section /> elements. -->
    </sectionGroup>

Für jeden Konfigurationsabschnitt im Bereich für die Konfigurationsabschnittseinstellungen gibt es eine Abschnittshandlerdeklaration. Ein Abschnittshandler ist eine .NET Framework-Klasse, die die ConfigurationSection-Schnittstelle implementiert. Abschnittshandlerdeklarationen enthalten den Namen eines Konfigurationseinstellungsabschnitts (z. B pages) und den Namen der Abschnittshandlerklasse, durch die die Konfigurationsdaten in diesem Abschnitt verarbeitet werden (z. B. System.Web.Configuration.PagesSection). Dies wird im folgenden Codebeispiel gezeigt.

      <section name="pages"
        type="System.Web.Configuration.PagesSection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
      </section>

Ein Konfigurationsabschnittshandler muss nur einmal deklariert werden. Abschnittshandler für die standardmäßigen ASP.NET-Konfigurationsabschnitte sind bereits in der standardmäßigen Datei Machine.config deklariert. Die Stammdatei Web.config und andere Konfigurationsdateien in ASP.NET-Anwendungen erben automatisch die Konfigurationshandler, die in der Datei Machine.config deklariert werden. Sie müssen lediglich einen neuen Abschnittshandler deklarieren, wenn Sie eine benutzerdefinierte Abschnittshandlerklasse erstellen, die einen benutzerdefinierten Einstellungsabschnitt behandelt.

Die vordefinierten Abschnitte für die ASP.NET-Konfigurationseinstellungen sind unter ASP.NET-Konfigurationseinstellungen aufgelistet. Informationen zum Definieren eigener benutzerdefinierter Einstellungsabschnitte und zum Entwickeln eigener Konfigurationsabschnittshandler für deren Verwaltung finden Sie unter Klassen zum Erstellen von benutzerdefinierten Abschnittshandlern und Gewusst wie: Erstellen von benutzerdefinierten Konfigurationsabschnitten mit ConfigurationSection.

Einstellungen für Konfigurationsabschnitte

Der Bereich mit Konfigurationsabschnittseinstellungen folgt direkt auf den Deklarationsbereich des Konfigurationsabschnittshandlers und enthält die eigentlichen Konfigurationseinstellungen.

Standardmäßig ist entweder intern oder in einer der Stammkonfigurationsdateien ein Konfigurationsabschnittselement für jedes section-Element und jedes sectionGroup-Element im configSections-Bereich festgelegt. Diese Standardeinstellungen können in der Datei Systemstamm\Microsoft.NET\Framework\Versionsnummer\CONFIG\Machine.config.comments angezeigt werden.

Ein Konfigurationsabschnittselement enthält u. U. auch untergeordnete Elemente, die vom selben Abschnittshandler behandelt werden wie das übergeordnete Element. Das folgende pages-Element enthält beispielsweise ein namespaces-Element, das über keinen entsprechenden Abschnittshandler verfügt, da es vom pages-Abschnittshandler behandelt wird.

  <pages
    buffer="true"
    enableSessionState="true"
    asyncTimeout="45"
  <!-- Other attributes. -->
  >
    <namespaces>
      <add namespace="System" />
      <add namespace="System.Collections" />
    </namespaces>
  </pages>

Beispiel aus einer Datei Web.config

Das folgende Codebeispiel zeigt, wo die vorherigen Codebeispiele in eine Datei Web.config eingefügt werden. Beachten Sie, dass das namespaces-Element des pages-Elements über keine Deklaration des Konfigurationsabschnittshandlers verfügt. Dies liegt daran, dass der System.Web.Configuration.PagesSection-Abschnittshandler alle untergeordneten Elemente des pages-Einstellungsabschnitts behandelt.

<?xml version="1.0" encoding="us-ascii"?>
<configuration>

<!-- Configuration section-handler declaration area. -->
  <configSections>
    <sectionGroup name="system.web"
      type="System.Web.Configuration.SystemWebSectionGroup, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
      <section
        name="pages" 
        type="System.Web.Configuration.PagesSection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
      />
      <!-- Other <section /> elements. -->
    </sectionGroup>
    <!-- Other <sectionGroup /> and <section /> elements. -->
  </configSections>

<!-- Configuration section settings area. -->
  <pages
    buffer="true"
    enableSessionState="true"
    asyncTimeout="45"
  <!-- Other attributes. -->
  >
    <namespaces>
      <add namespace="System" />
      <add namespace="System.Collections" />
    </namespaces>
  </pages>
  <!-- Other section settings elements. -->

</configuration>

Probleme beim Bearbeiten

Da Elemente in den Konfigurationsabschnitten aus wohlgeformtem XML-Code bestehen müssen, ist bei den Elementen und Attributen Groß- und Kleinschreibung zu beachten. Es gibt viele Möglichkeiten, Konfigurationseinstellungen zu bearbeiten. Weitere Informationen finden Sie unter Bearbeiten von ASP.NET-Konfigurationsdateien.

Benutzerdefinierte Konfigurationsabschnittshandler müssen programmgesteuert erstellt werden, bevor Sie benutzerdefinierte Abschnittselemente in den ASP.NET-Konfigurationsdateien verwenden können. Weitere Informationen finden Sie unter Gewusst wie: Erstellen von benutzerdefinierten Konfigurationsabschnitten mit ConfigurationSection.

Pfadattribute in Konfigurationsdateien

Beim Verweis auf einen Webanwendungspfad kann am Anfang der path-Attribute in einer Datei Web.config die Zeichenfolge "~/" verwendet werden, die das Stammverzeichnis der Anwendung angibt. Weitere Informationen finden Sie unter ASP.NET-Websitepfade.

Siehe auch

Aufgaben

Gewusst wie: Erstellen von benutzerdefinierten Konfigurationsabschnitten mit ConfigurationSection

Gewusst wie: Erstellen von benutzerdefinierten Konfigurationsabschnitten mit IConfigurationSectionHandler

Weitere Ressourcen

Verwalten von ASP.NET-Websites

ASP.NET-Konfigurationseinstellungen

Konfigurieren von .NET Framework-Anwendungen