Konfigurieren von Apps mithilfe von Konfigurationsdateien

.NET Framework bietet Entwicklern und Administratoren die Möglichkeit, die Ausführung von Anwendungen über Konfigurationsdateien flexibel zu steuern. Konfigurationsdateien sind XML-Dateien, die je nach Bedarf verändert werden können. So kann der Administrator bestimmen, auf welche geschützten Ressourcen eine Anwendung zugreifen kann, welche Assemblyversionen sie verwenden soll und wo sich Remoteanwendungen befinden. Entwickler wiederum können Einstellungen in Konfigurationsdateien einfügen, sodass eine Anwendung nicht jedes Mal neu kompiliert werden muss, wenn sich ihre Einstellungen ändern. In diesem Abschnitt wird beschrieben, was konfiguriert werden kann und warum die Konfiguration einer Anwendung von Nutzen sein kann.

Hinweis

Verwalteter Code kann mithilfe der Klassen im System.Configuration-Namespace Einstellungen aus den Konfigurationsdateien lesen, jedoch keine Einstellungen in diese Dateien schreiben.

Dieser Artikel beschreibt die Syntax von Konfigurationsdateien und enthält Informationen zu den drei Arten von Konfigurationsdateien: Computer, Anwendung und Sicherheit.

Konfigurationsdateiformat

Konfigurationsdateien enthalten Elemente, so genannte logische Datenstrukturen zur Einstellung von Konfigurationsinformationen. Innerhalb der Konfigurationsdatei können Sie Anfang und Ende eines Elements durch Tags markieren. Zum Beispiel besteht das Element <runtime> aus <runtime>untergeordneten</runtime>-Elementen. Ein leeres Element würde in Form von <runtime/> oder <runtime></runtime> geschrieben.

Wie bei allen XML-Dateien wird bei der Syntax von Konfigurationsdateien die Groß-/Kleinschreibung berücksichtigt.

Sie können Konfigurationseinstellungen mithilfe von vordefinierten Attributen vornehmen. Diese Attribute sind Name/Wert-Paare innerhalb des Anfangstags eines Elements. Durch den folgenden Beispielcode werden zwei Attribute (version und href) für das <codeBase>-Element angegeben, das den Ort bezeichnet, an dem die Common Language Runtime eine Assembly auffinden kann (weitere Informationen hierzu finden Sie unter Festlegen des Speicherortes einer Assembly).

<codeBase version="2.0.0.0"  
          href="http://www.litwareinc.com/myAssembly.dll"/>  

Computerkonfigurationsdateien

Die Computerkonfigurationsdatei Machine.config enthält Einstellungen, die für einen ganzen Computer gelten. Diese Datei befindet sich im Verzeichnis "%runtime install path%\Config". Machine.config enthält Konfigurationseinstellungen für die computerweite Assemblybindung, für integrierte Remotingkanäle sowie für ASP.NET.

Das Konfigurationssystem durchsucht zuerst die Computerkonfigurationsdatei nach dem <appSettings>-Element und anderen Konfigurationsabschnitten, die von einem Entwickler möglicherweise definiert wurden. Anschließend wird die Anwendungskonfigurationsdatei durchsucht. Aus Gründen der Übersichtlichkeit der Computerkonfigurationsdatei empfiehlt es sich, diese Einstellungen in der Anwendungskonfigurationsdatei zu speichern. Wenn sich diese Einstellungen in der Computerkonfigurationsdatei befinden, ist das System jedoch u. U. einfacher zu warten. Wird z. B. die Komponente eines Drittanbieters sowohl von der Client- als auch von der Serveranwendung verwendet, ist es einfacher, die Einstellungen für diese Komponente in der gleichen Datei zu speichern. In diesem Fall ist die Computerkonfigurationsdatei dafür am besten geeignet, und Sie vermeiden redundante Informationen in zwei verschiedenen Dateien.

Hinweis

Wenn Sie eine Anwendung mithilfe von XCOPY bereitstellen, werden die Einstellungen nicht in die Computerkonfigurationsdatei kopiert.

Weitere Informationen dazu, wie die Common Language Runtime die Computerkonfigurationsdatei für die Assemblybindung verwendet, finden Sie unter So sucht Common Language Runtime nach Assemblys.

Anwendungskonfigurationsdatei

Eine Anwendungskonfigurationsdatei enthält App-spezifische Einstellungen. Eine solche Datei enthält Konfigurationseinstellungen, die von der Common Language Runtime gelesen werden (z. B. Assemblybindungsrichtlinien, Remotingobjekte usw.), und Einstellungen, die von der App gelesen werden können.

Name und Speicherort der Anwendungskonfigurationsdatei sind vom Host der App abhängig; folgende Hosts sind möglich:

  • Von einer ausführbaren Datei gehostete App.

    Diese Apps haben zwei Konfigurationsdateien: eine Quellkonfigurationsdatei, die von Entwicklern während der Entwicklung geändert wird, und eine Ausgabedatei, die mit der Anwendung verteilt wird.

    Wenn Sie in Visual Studio entwickeln, legen Sie die Quellkonfigurationsdatei für Ihre App im Projektverzeichnis ab, und legen Sie die zugehörige Eigenschaft In Ausgabeverzeichnis kopieren auf Immer kopieren oder Kopieren, wenn neuer fest. Standardmäßig lautet der Name der Konfigurationsdatei App.config.

    Um die Ausgabekonfigurationsdatei zu erstellen, die mit der App bereitgestellt wird, kopiert Visual Studio die Quellkonfigurationsdatei automatisch in das Verzeichnis, in dem die kompilierte Assembly abgelegt wird. Diese Datei heißt <NameIhrerApp>.exe.config. Beispielsweise verfügt eine App namens myApp.exe über eine Ausgabekonfigurationsdatei mit dem Namen myApp.exe.config.

    In einigen Fällen wird die Ausgabekonfigurationsdatei von Visual Studio möglicherweise geändert. Weitere Informationen dazu finden Sie im Abschnitt Umleiten von Assemblyversionen auf App-Ebene des Artikels Umleiten von Assemblyversionen.

  • Von ASP.NET gehostete App.

    Weitere Informationen zu ASP.NET-Konfigurationsdateien finden Sie unter ASP.NET-Konfigurationseinstellungen.

  • Von Internet Explorer gehostete App.

    Verfügt eine in Internet Explorer gehostete App über eine Konfigurationsdatei, wird der Speicherort dieser Datei in einem <link>-Tag mit folgender Syntax angegeben: <link rel="*ConfigurationFileName*" href="*location*">.

    In diesem Tag bezeichnet location die URL, an der sich die Konfigurationsdatei befindet. Dadurch wird die App-Basis festgelegt. Die Konfigurationsdatei und die App müssen sich in derselben Website befinden.

Sicherheitskonfigurationsdateien

Sicherheitskonfigurationsdateien enthalten Informationen zur Codegruppenhierarchie und zu Berechtigungen, die einer Richtlinienebene zugeordnet sind. Es wird dringend empfohlen, mithilfe des Sicherheitsrichtlinientools für den Codezugriff (Caspol.exe) die Sicherheitsrichtlinie dahingehend zu ändern, dass Richtlinienänderungen keinesfalls zur Beschädigung der Sicherheitskonfigurationsdateien führen können.

Hinweis

Ab .NET Framework 4 sind die Sicherheitskonfigurationsdateien nur vorhanden, wenn die Sicherheitsrichtlinien geändert wurden.

Die Sicherheitskonfigurationsdateien sind an folgenden Speicherorten abgelegt:

  • Konfigurationsdatei für Unternehmensrichtlinien: %Laufzeit-Installationspfad%\Config\Enterprisesec.config

  • Konfigurationsdatei für Computerrichtlinien: %Laufzeit-Installationspfad%\Config\Security.config

  • Konfigurationsdatei für Benutzerrichtlinien: %USERPROFILE%\Application data\Microsoft\CLR security config\vxx.xx\Security.config

Siehe auch