2013-01-16 15 views
12

W świecie "na miejscu" podczas tworzenia aplikacji, takiej jak usługa Windows, klasycznie używam pliku App.config do przechowywania różnych informacji o konfiguracji aplikacji, od ciągów połączenia z bazą danych do informacji punktu końcowego WCF.W jaki sposób pliki cscfg i App.config są powiązane ze sobą dla ról pracownika Azure?

W świecie ról robotów Azure prezentowane są teraz pliki .cscfg, które zawierają informacje "dla roli".

Nie rozumiem, czy są to pliki uzupełniające konfigurację aplikacji lub całkowicie zastępujące pliki App.config. W jaki sposób te dwa pliki służą do konfigurowania ról usługi Azure Worker?

Odpowiedz

15

Bardzo Basic Wyjaśnienie:

koncepcyjnej są one takie same. W tradycyjnej aplikacji można użyć pliku app.config do zdefiniowania różnych ustawień związanych z aplikacją (w sekcji ustawień aplikacji). Podobnie, możesz użyć pliku cscfg do zdefiniowania różnych ustawień związanych z twoją aplikacją w chmurze (w sekcji ConfigurationSettings). Podobnie jak plik app.config, możesz zdefiniować inne rzeczy (np. Liczbę instancji swojej aplikacji w chmurze) w pliku cscfg.

Jeśli chcesz, możesz nadal definiować niektóre ustawienia w pliku app.config, ale należy pamiętać o tym, że plik app.config zostanie "spakowany" i wdrożony, a w celu zmiany ustawień trzeba przepakować aplikację i wdrożyć ją. Jednak można zmienić ustawienia w pliku cscfg w locie za pomocą portalu lub interfejsu API do zarządzania usługami bez konieczności przepakowywania i ponownego wdrażania aplikacji. Na przykład rozważ scenariusz, w którym definiujesz ciąg połączenia z bazą danych w pliku ustawień. Jeśli określisz to w app.config, aby to zmienić, musisz dokonać zmiany w pliku app.config -> Zbuduj aplikację -> opublikuj aplikację. Gdzie tak jak w przypadku pliku cscfg, wystarczy zmienić tę wartość w portalu.

+0

gdzie mogę znaleźć plik .cscfg do zadania internetowego? Stworzyłem go jako zwykłą aplikację internetową (nie jako usługę chmury w kolorze błękitnym). Jak mogę wygenerować plik .cscfg? – Sridharan

11

Dla ról Web/Worker tradycyjne pliki konfiguracyjne (app/web.config) będą działać tak samo, jak w przypadku wdrożenia lokalnego. Ale ważne jest, aby wiedzieć, że ten plik jest zawarty w pakiecie usług, co oznacza, że ​​jest częścią wdrożenia.

Oznacza to, że nie można zmienić ustawień w aplikacji/web.config bez ponownego wdrażania aplikacji. Z drugiej strony ServiceConfiguration.cscfg jest zdefiniowany na poziomie poziomu wdrożenia usługi Cloud Service, obok rzeczywistego pakietu Service Pack. Oznacza to, że możesz zmienić ten plik konfiguracyjny bez konieczności ponownego wdrażania aplikacji. Dostęp do tych ustawień można również uzyskać z poziomu aplikacji, dzwoniąc pod numer RoleEnvironment.GetConfigurationSettingValue (podobny do ConfigurationManager.AppSettings).

Jeśli rozważasz zbudowanie aplikacji działającej zarówno lokalnie, jak i na platformie Windows Azure, rozważ użycie opcji Microsoft.WindowsAzure.ConfigurationManager package. Który automatycznie wybiera plik cscfg lub app/web.config na podstawie miejsca, w którym działa aplikacja.

Wskazówka: Subskrybując zdarzenie RoleEnvironment.Changing/Changed można przechwytywać zmiany w tym pliku konfiguracyjnym. Możesz sobie z tym poradzić, aby zaktualizować web.config w kodzie na przykład (explained here).

+0

przykładowy kod: Microsoft.Azure.CloudConfigurationManager.GetSetting ("xxx") –

+0

Czy mogę użyć pliku .cscfg do aplikacji internetowej? – Sridharan

Powiązane problemy