2016-08-31 5 views
0

Ich verwende einen CloudConfigurationManager, um auf Laufzeiteinstellungen zuzugreifen. Aber die Schnittstelle ist schrecklich! Es gibt nur eine statische GetSetting() -Methode. Ich vermute, das liegt daran, dass die zugrundeliegende Logik zur Laufzeit nur eine Vielzahl von Speicherorten nach dem Schlüssel durchsucht.Programmatischer Zugriff auf Azures CloudConfigurationManager

Was ich tun möchte, ist über alle möglichen Schlüssel iterieren. Die grundlegendere ConfigurationManager-Klasse erreicht dies über eine Methode AppSettings().

Ich denke, dies möglicherweise/nicht/über CloudConfigurationManager möglich sein, aber ich frage mich, ob es eine Möglichkeit gibt, auf die Schemadatei (.csdef) in einer programmatischen Weise (d. H. Stark typisierte Art) zuzugreifen. Ich würde es vorziehen, nicht als Roh-XML darauf zuzugreifen. Irgendwelche Vorschläge?

+0

Dies scheint eine Wiederholung von: http://stackoverflow.com/questions/8710494/how-to-get-all-configuration-settings-from-azure-config-file – Jmoney38

Antwort

1

aber ich frage mich, ob es einen Weg gibt die Schemadatei (die .csdef) in einigen programmatischen Art und Weise (das heißt stark typisierten Weise) zuzugreifen.

Von dem, was ich verstehe, ist dies von Entwurf. Sie dürfen nicht programmgesteuert darauf zugreifen. Von https://msdn.microsoft.com/en-us/library/azure/ee758711.aspx:

Die Service-Definitionsdatei definiert das Service-Modell für eine Anwendung.

So wie ich das verstehe, ist im Wesentlichen csdef Datei ist das Modell, das Sie konfigurieren und Azure Fabric Controller sagen, wie Sie Ihre Ressourcen bereitgestellt werden soll und beispielsweise so konfiguriert Größe der VM, wenn Sie IIS benötigen, welche Zertifikate installiert werden sollen, Firewall-Ports usw. Azure Fabric Controller nimmt diese Informationen und stellt die Umgebung für Sie bereit.

Dies ist der Grund, warum Datei mit dem Paket gebündelt ist und nicht als separate Datei wie cscfg Datei gespeichert wird.

+0

Vielen Dank für die Antwort. Ich erwähnte das CSdef nur als eine sekundäre Lösung, wenn eine existierte. Das wird frustrierend. Azure bietet eine Möglichkeit, Konfigurationseinstellungen zu lesen und über die Werte zu iterieren, da sie im Azure-Portal angezeigt werden. Ich sehe nicht, warum das SDK-Team diese Funktionalität explizit verbieten würde. Ich werde weiter graben. Es gibt eine Möglichkeit, Callback-Ereignisse zu empfangen, wenn eine Konfigurationseinstellung im Portal geändert wird (https://convective.wordpress.com/2010/03/18/service-runtime-in-windows-azure/) - Aber das behandelt nicht meine Notwendigkeit, auf alle Einstellungen zuzugreifen. – Jmoney38

+0

'Azure hat eine Art, Konfigurationseinstellungen zu lesen und über die Werte zu iterieren, da sie im Azure-Portal angezeigt werden. 'Ich vermute, dass sie auch analysieren die XML-Datei. Schema für cscfg-Datei ist hier definiert: https://msdn.microsoft.com/en-us/library/azure/ee758710.aspx. Wenn ich nicht falsch verstanden werde, zeigen sie nicht die Werte aus der CSDF-Datei. –

+0

Richtig - und ich würde die Werte nicht wollen. Sie können die def-Datei einfach analysieren, um die Schlüssel zu erhalten, und anschließend mit den CloudConfigurationManager-Klassen nachschlagen. – Jmoney38

Verwandte Themen