Konfigurieren von Apps mithilfe von Konfigurationsdateien

.NET Framework bietet Entwicklern und Administratoren Kontrolle und Flexibilität bei der Ausführung von Konfigurationsdateien. 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.

In diesem Artikel werden die Syntax von Konfigurationsdateien beschrieben und Informationen zu den drei Arten von Konfigurationsdateien bereitgestellt: 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. Das Element besteht beispielsweise <runtime> aus <runtime>untergeordneten Elementen</runtime>. 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 auf einen gesamten Computer gelten. Diese Datei befindet sich im Verzeichnis "%runtime install path%\Config". Machine.config enthält Konfigurationseinstellungen für die computerweite Assemblybindung, integrierte Remotingkanäle und ASP.NET.

Das Konfigurationssystem sucht zunächst in der Computerkonfigurationsdatei für das< AppSettings-Element und andere Konfigurationsabschnitte>, die ein Entwickler definieren kann. 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 verfügen über zwei Konfigurationsdateien: eine Quellkonfigurationsdatei, die vom Entwickler während der Entwicklung geändert wird, und eine Ausgabedatei, die mit der App 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 ist der Name der Konfigurationsdatei App.config.

    Um die Ausgabekonfigurationsdatei zu erstellen, die mit der App bereitgestellt wird, kopiert Visual Studio die Quellkonfigurationsdatei in das Verzeichnis, in dem die kompilierte Assembly platziert wird. Diese Datei ist "yourappname>.exe.config" genannt<. Beispielsweise verfügt eine App mit dem Namen myApp.exe über eine Ausgabekonfigurationsdatei namens 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 Configuration Einstellungen.

  • Von Internet Explorer gehostete App.

    Wenn eine in Internet Explorer gehostete App über eine Konfigurationsdatei verfügt, wird der Speicherort dieser Datei in einem <link> Tag mit der folgenden 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 Sicherheitsrichtlinie geändert wurde.

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