2014-02-12 16 views
8

Angenommen, ein Projekt enthält sowohl App.config- als auch Web.config-Dateien mit einigen widersprüchlichen Informationen. Gibt es Regeln, welche der Dateien eine höhere Priorität hat? Oder eine Anwendung muss beide ignorieren und eine Ausnahme auslösen?App.config vs. Web.config: Welches hat Priorität?

+1

diese Antwort sollte die Dinge klar aus: http://stackoverflow.com/a/17160808/536610 – Niklas

+1

ich denke, das ist etwas, Sie in 5 Minuten testen konnte. Fügen Sie einige Einstellungen in app.config und web.config hinzu. Nehmen wir an, und und testen Sie in Ihrer App, erhalten Sie 'AAA' oder' BBB'. –

Antwort

6

Von MSDN for .NET 4.5:

Wenn ein Dienst in Visual Studio konfigurieren, verwenden entweder eine Web.config-Datei oder eine Datei App.config die Einstellungen festlegen. Die Auswahl des Namens der Konfigurationsdatei hängt von der Hosting-Umgebung ab, die Sie für den Service ausgewählt haben. Verwenden Sie eine Web.config-Datei, wenn Sie Ihren Dienst mit IIS hosten. Wenn Sie eine andere Hosting-Umgebung verwenden, verwenden Sie eine App.config-Datei.

In Visual Studio wird die Datei namens App.config zum Erstellen der endgültigen Konfigurationsdatei verwendet. Der endgültige Name, der tatsächlich für die Konfiguration verwendet wird, hängt vom Namen der Assembly ab. Beispielsweise hat eine Assembly mit dem Namen "Cohowinery.exe" einen endgültigen Konfigurationsdateinamen von "Cohowinery.exe.config". Sie müssen jedoch nur die App.config-Datei ändern. Änderungen an dieser Datei werden automatisch zur Kompilierungszeit in die endgültige Anwendungskonfigurationsdatei übernommen.

Bei Verwendung einer App.config-Datei führt das Konfigurationssystem die App.config-Datei mit dem Inhalt der Datei "Machine.config" zusammen, wenn die Anwendung gestartet und die Konfiguration angewendet wird. Dieser Mechanismus ermöglicht das Definieren von maschinenweiten Einstellungen in der Datei Machine.config. Die Datei App.config kann zum Überschreiben der Einstellungen der Datei Machine.config verwendet werden. Sie können auch die Einstellungen in der Datei Machine.config sperren, damit sie verwendet werden. Im Fall Web.config führt das Konfigurationssystem die Web.config-Dateien in allen Verzeichnissen, die zum Anwendungsverzeichnis führen, in die Konfiguration zusammen, die angewendet wird. Weitere Informationen zur Konfiguration und zu den Einstellungsprioritäten finden Sie in den Themen im System.Configuration-Namespace.

Hier ist auch ein großer Beitrag für die Verwendung von MS Azure, erklären die Unterschiede b/w Application, appSettings (app.config/web.config) und Configuration (.csdef/.cscfg) :

http://haishibai.blogspot.com/2012/09/windows-azure-cloud-service.html