Übersicht über die ASP.NET-Konfigurations-API
Aktualisiert: November 2007
Die ASP.NET-Konfigurations-API bietet eine einheitliche Programmierschnittstelle, mit der Sie Konfigurationsdaten von Anwendungen entwickeln, bereitstellen und verwalten können. Mit der Konfigurations-API können Sie programmgesteuert vollständige ASP.NET-Konfigurationen entwickeln und ändern, ohne den XML-Code in den Konfigurationsdateien direkt zu bearbeiten. Außerdem können Sie die Konfigurations-API in von Ihnen entwickelten Konsolenanwendungen und Skripts, in webbasierten Verwaltungstools und in MMC-Snap-Ins (Microsoft Management Console) verwenden. Die folgenden Tools zur Konfigurationsverwaltung verwenden die Konfigurations-API und sind in .NET Framework, Version 2.0, enthalten:
Das ASP.NET-MMC-Snap-In, das die Konfigurations-API zum Vereinfachen von Verwaltungsaufgaben verwendet und eine integrierte Ansicht der lokalen Konfigurationsdaten aus allen Ebenen der Konfigurationshierarchie bereitstellt.
Das Websiteverwaltungs-Tool, das die Verwaltung der Konfigurationseinstellungen für lokale und Remoteanwendungen, z. B. gehostete Sites, ermöglicht.
Die ASP.NET-Konfigurations-API ist von der programmgesteuerten Konfigurations-API der Internetinformationsdienste (IIS) getrennt. Weitere Informationen finden Sie unter Using IIS Programmatic Administration.
Funktionalität der Konfigurations-API
Die ASP.NET-Konfigurations-API besteht aus einer Reihe von ASP.NET-Verwaltungsobjekten, die zur programmgesteuerten Konfiguration von Websites und Anwendungen verwendet werden können. Diese Verwaltungsobjekte sind als .NET Framework-Klassenbibliothek implementiert. Das Programmiermodell der Konfigurations-API unterstützt Sie dabei, die Konsistenz und Zuverlässigkeit des Codes sicherzustellen, indem die Verwendung von Datentypen zur Kompilierzeit erzwungen wird.
Zum Vereinfachen der Verwaltung von Anwendungskonfigurationen können Sie mithilfe der Konfigurations-API Daten anzeigen, die aus allen Stellen der Konfigurationshierarchie in einer einheitlichen Auflistung zusammengeführt werden, anstatt die Daten als getrennte Auflistungen aus verschiedenen Konfigurationsdateien anzuzeigen. Außerdem können Sie mit der Konfigurations-API vollständige Anwendungskonfigurationen ändern, ohne den XML-Code in den Konfigurationsdateien direkt zu bearbeiten. Schließlich unterstützt die API Verwaltungstools, z. B. das Websiteverwaltungs-Tool, und vereinfacht dadurch Konfigurationsaufgaben.
Die Konfigurations-API vereinfacht die Bereitstellung, indem sie die Erstellung von Konfigurationsdateien auf einem Computer unterstützt und Konfigurationsskripts auf mehreren Computern ausführt.
Die Erstellung von IIS-Anwendungen wird durch die Konfigurations-API nicht unterstützt. Weitere Informationen zum Schreiben von Verwaltungsanwendungen für ISS finden Sie unter Using System.DirectoryServices to Configure IIS im IIS SDK.
Arbeiten mit lokalen und Remotekonfigurationseinstellungen
Ein Configuration-Objekt stellt die zusammengeführte Ansicht der Konfigurationseinstellungen dar, die auf eine bestimmte physikalische Entität angewendet wird, z. B. einen Computer, oder auf eine logische Entität, z. B. eine Anwendung oder eine Website. Die angegebene logische Entität kann sich auf dem lokalen Computer oder auf einem Remoteserver befinden.
Wenn zur angegebenen Entität keine Konfigurationsdatei vorhanden ist, stellt das Configuration-Objekt die mit der Datei Machine.config definierten Standardkonfigurationseinstellungen dar.
Ein Configuration-Objekt können Sie abrufen, indem Sie die Methode zum Öffnen einer Konfiguration aus einer der folgenden Klassen verwenden:
ConfigurationManager-Klasse, wenn die Entität eine Clientanwendung ist.
WebConfigurationManager-Klasse, wenn die Entität eine Webanwendung ist.
Diese Methoden geben ein Configuration-Objekt zurück, das wiederum die erforderlichen Methoden und Eigenschaften zum Behandeln der zugrunde liegenden Konfigurationsdateien bereitstellt. Auf diese Dateien haben Sie Lese- und Schreibzugriff.
Lesen Sie verwenden die GetSection-Methode oder die GetSectionGroup-Methode zum Lesen von Konfigurationsinformationen. Der lesende Benutzer bzw. Prozess muss über Leseberechtigungen für alle Konfigurationsdateien in der Hierarchie verfügen.
Hinweis: Bei Verwendung einer statischen GetSection-Methode, die einen path-Parameter verwendet, muss sich der path-Parameter auf die Anwendung beziehen, in der der Code ausgeführt wird. Andernfalls wird der Parameter ignoriert, und die Konfigurationsinformationen der aktuell ausgeführten Anwendung werden zurückgegeben.
Schreiben Verwenden Sie zum Schreiben von Konfigurationsinformationen eine der Save-Methoden. Der schreibende Benutzer oder Prozess muss über Schreibberechtigungen für die Konfigurationsdatei und das Konfigurationsverzeichnis auf der aktuellen Ebene der Konfigurationshierarchie verfügen sowie über Leseberechtigungen für alle Konfigurationsdateien in der Hierarchie.
Verwenden Sie zum Generieren einer Konfigurationsdatei, die die geerbten Konfigurationseinstellungen einer angegebenen Entität darstellt, eine der folgenden Methoden zum Speichern der Konfiguration:
Die Save-Methode, um eine neue Konfigurationsdatei zu erstellen.
Die SaveAs-Methode, um eine neue Konfigurationsdatei an einem anderen Speicherort zu generieren.
Hinweis: |
---|
Verwenden Sie das Aspnet_regiis-Befehlszeilentool, um den Zugriff auf Konfigurationseinstellungen auf einem Remotecomputer zu aktivieren. Weitere Informationen zu diesem Tool finden Sie unter ASP.NET IIS-Registrierungstool (Aspnet_regiis.exe). Informationen über das Erstellen von und den Zugriff auf benutzerdefinierte Konfigurationseinstellungen, die über die in .NET Framework enthaltenen systeminternen Abschnitte hinausgehen, finden Sie unter ConfigurationSection. |
Codebeispiele
Innerhalb einer ASP.NET-Seite können Sie den folgenden Code verwenden, um Konfigurationsinformationen zu der Anwendung abzurufen, in der die ASP.NET-Seite ausgeführt wird. In diesem Codebeispiel wird die statische WebConfigurationManager.GetSection-Methode verwendet.
System.Web.Configuration.UrlMappingsSection urlMaps =
(System.Web.Configuration.UrlMappingsSection)
System.Web.Configuration.WebConfigurationManager.GetSection(
"system.web/urlMappings");
Bool urlMappingsEnabled = urlMaps.IsEnabled;
Innerhalb einer ASP.NET-Anwendung oder einer Clientanwendung können Sie den folgenden Code verwenden, um Konfigurationsinformationen zu einer separaten Anwendung abzurufen. In diesem Codebeispiel wird die nicht statische GetSection-Methode des System.Configuration.Configuration-Objekts verwendet.
System.Configuration.Configuration config =
System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration(
"/SampleWebApp");
System.Web.Configuration.UrlMappingsSection urlMaps =
(System.Web.Configuration.UrlMappingsSection)
System.Web.Configuration.WebConfigurationManager.GetSection(
"system.web/urlMappings");
bool urlMappingsEnabled = urlMaps.IsEnabled;
Konfigurationsklassen und Konfigurationsnamespaces
Viele Konfigurationsklassen und Konfigurationsmethoden ähneln einander. In der folgenden Tabelle werden die am häufigsten verwendeten Konfigurationsklassen und Konfigurationsnamespaces beschrieben. Informationen zu Verwendungsszenarios und Codebeispielen unter Verwendung dieser Klassen und Namespaces finden Sie unter Verwenden der Konfigurationsklassen.
Konfigurationsklasse oder Konfigurationsnamespace |
Beschreibung |
---|---|
System.Configuration-Namespace |
Enthält die Hauptkonfigurationsklassen für alle .NET Framework-Anwendungen. Dazu gehören auch die Abschnittshandlerklassen für die unter Konfigurationsdateischema für .NET Framework definierten .NET Framework-Clientkonfigurationsabschnitte. Abschnittshandlerklassen werden zum Abrufen von Konfigurationsdaten für einen Abschnitt aus Methoden verwendet, z. B. GetSection und GetSectionGroup. Diese beiden Methoden sind nicht statisch. Weitere Informationen finden Sie weiter oben in diesem Thema unter Arbeiten mit statischen und nicht statischen Methoden. Die ASP.NET-Abschnittshandlerklassen sind im System.Web.Configuration-Namespace enthalten. |
Stellt einen Satz von Konfigurationsdaten für einen Computer, eine Anwendung, ein Webverzeichnis oder eine andere Ressource dar. Eine Instanz der Configuration-Klasse entspricht den in der Hierarchie enthaltenen zusammengeführten Konfigurationseinstellungen. Diese Klasse enthält nützliche Methoden, z. B. GetSection und GetSectionGroup, zum Aktualisieren von Konfigurationseinstellungen und zum Abrufen von Verweisen auf Abschnitte und Abschnittsgruppen. Diese beiden Methoden sind nicht statisch. Weitere Informationen finden Sie weiter oben in diesem Thema unter Arbeiten mit statischen und nicht statischen Methoden. Diese Klasse wird als Rückgabetyp für Methoden verwendet, die Konfigurationsdaten zur Entwurfszeit abrufen, z. B. die Methoden der WebConfigurationManager-Klasse und der ConfigurationManager-Klasse. |
|
System.Web.Configuration-Namespace |
Enthält die Abschnittshandlerklassen für die unter ASP.NET-Konfigurationseinstellungen definierten ASP.NET-Konfigurationsabschnitte. Abschnittshandlerklassen werden zum Abrufen von Konfigurationsdaten für einen Abschnitt aus Methoden verwendet, z. B. GetSection und GetSectionGroup. Diese beiden Methoden sind statisch. Weitere Informationen finden Sie weiter oben in diesem Thema unter Arbeiten mit statischen und nicht statischen Methoden. |
Stellt nützliche Methoden zum Abrufen von Verweisen auf Laufzeit- und Entwurfszeit-Konfigurationseinstellungen bereit. Diese Methoden verwenden die System.Configuration.Configuration-Klasse als Rückgabetyp. Die statische GetSection-Methode dieser Klasse und die nicht statische GetSection-Methode der System.Configuration.ConfigurationManager-Klasse können gegeneinander ausgetauscht werden. Weitere Informationen finden Sie weiter oben in diesem Thema unter Arbeiten mit statischen und nicht statischen Methoden. Bei Webanwendungskonfigurationen empfiehlt es sich, nicht die System.Configuration.ConfigurationManager-Klasse, sondern die System.Web.Configuration.WebConfigurationManager-Klasse zu verwenden. |
|
System.Configuration.Provider-Namespace |
Bietet eine Möglichkeit, den Konfigurationsanbieter anzupassen und zu erweitern. Dies ist die Basisklasse aller Anbieterklassen im Konfigurationssystem. |
System.Web.Management-Namespace |
Enthält Klassen und Schnittstellen zum Verwalten und Überwachen des Systemzustands der Webanwendungen. Streng genommen wird dieser Namespace nicht als Teil der Konfigurations-API betrachtet. Die Klassen in diesem Namespace übernehmen z. B. die Ablaufverfolgung und das Auslösen von Ereignissen. Weitere Informationen finden Sie unter Problembehandlung und Debuggen mit ASP.NET. |
System.Management.Instrumentation-Namespace |
Stellt die Klassen bereit, die für die Instrumentation von Anwendungen erforderlich sind, um deren Verwaltungsdaten und -ereignisse potenziellen Kunden mithilfe der Windows-Verwaltungsinstrumentation (Windows Management Instrumentation, WMI) verfügbar zu machen. Die ASP.NET-Systemüberwachung verwendet WMI, um Ereignisse zu übermitteln. Streng genommen wird dieser Namespace nicht als Teil der Konfigurations-API betrachtet. |
Vererbungsstruktur von Konfigurationsklassen
Das folgende Diagramm veranschaulicht die Vererbungsbeziehungen zwischen den Klassen im System.Web.Configuration-Namespace und im System.Configuration-Namespace. Mithilfe des Diagramms können Sie bestimmen, welche Eigenschaften und Methoden dem aktuell instanziierten Objekt zur Verfügung stehen und wie weitere Informationen abgerufen werden.
Aggregationsstruktur von Konfigurationsklassen
Das folgende Diagramm veranschaulicht die Aggregationsbeziehungen zwischen den Klassen im System.Web.Configuration-Namespace und im System.Configuration-Namespace. Das Diagramm soll das Verständnis der Klassen erleichtern, die innerhalb anderer Klassen als Objekte instanziiert werden.
Erstellen von spezialisierten Tools
Bei mehreren Administratoren, die jeweils verschiedene Ressourcen verwalten, z. B. bestimmte Websites und Anwendungen, müssen Sie den Administratoren individuell die erforderlichen Rechte zuweisen und ihre Aktionsmöglichkeiten bezüglich der anderen Ressourcen einschränken. Sie können Verwaltungstools entwickeln, die mithilfe der ASP.NET-Konfigurations-API nur solche Konfigurationseinstellungen verfügbar machen, die die Administratoren für ihre Arbeit benötigen, während der Zugriff auf andere Einstellungen verweigert wird. Dadurch sind die Administratoren voll handlungsfähig, aber gleichzeitig ist der Schutz Ihrer Ressourcen gewährleistet, da ein direkter Zugriff auf die Konfigurationsdateien nicht mehr erforderlich ist.
Tools für mehrere Server
Wenn Sie mehrere Server verwalten, müssen Sie womöglich auf mehreren Servern ein und dieselbe ASP.NET-Anwendung bereitstellen und verwalten. Die Verwaltung einer Webfarm kann z. B. die folgenden Aufgaben umfassen:
Schreiben eines Skripts, mit dem auf einigen bzw. allen Servern innerhalb der Webfarm dieselbe ASP.NET-Anwendung konfiguriert wird.
Sperren einiger der Dateien, die für die einzelnen Instanzen der Anwendung verwendet werden.
Automatisieren einer Überwachungsfunktionalität, mit der Konfigurationen bereitgestellter Anwendungen aufgezeichnet werden, um sicherzustellen, dass die Installation auf allen Computern auf die gleiche Weise konfiguriert wird.
Einmaliges Bearbeiten einer Änderung der Konfiguration mit anschließendem Anwenden der Änderung auf alle Instanzen der Anwendung, unabhängig vom Installationsort.
Darüber hinaus unterstützt die ASP.NET-Konfigurations-API die Batchausführung auf mehreren Servern.
Erstellen und Verwalten der Konfiguration mit einem Tool
Als Besitzer einer Site können Sie mit dem ASP.NET-MMC-Snap-In Konfigurationen von ASP.NET-Anwendungen auf einem Computer erstellen und verwalten. Das ASP.NET-MMC-Snap-In stellt die Funktionalität der ASP.NET-Konfigurations-API über eine grafische Benutzeroberfläche zur Verfügung. Das ASP.NET-MMC-Snap-In bietet eine einheitliche Ansicht der Konfigurationseinstellungen mehrerer Konfigurationsdateien, z. B. zu Sitzung, Sicherheit, Fehlern und Ablaufverfolgung. Sie können die Einstellungen ändern, ohne den XML-Code direkt in den Konfigurationsdateien zu bearbeiten. Weitere Informationen hierzu finden Sie unter MMC-Snap-In für ASP.NET.
Siehe auch
Aufgaben
Gewusst wie: Programmgesteuerter Zugriff auf die ASP.NET-Konfigurationseinstellungen
Gewusst wie: Lesen von Anwendungseinstellungen aus der Datei Web.config
Gewusst wie: Lesen von Verbindungszeichenfolgen aus der Datei Web.config
Konzepte
Verwenden der Konfigurationsklassen