CloudConfigurationManager vs WebConfigurationManager?

На веб-сайтах Azure я всегда использовал следующий код для извлечения некоторых значений из настроек конфигурационного приложения:

string property = WebConfigurationManager.AppSettings["property"];  

Всего пару дней назад я столкнулся с CloudConfigurationManager, и с ним я могу получить свойство следующим образом:

string property = CloudConfigurationManager.GetSetting("property"); 

Несмотря на то, что CloudConfigurationManager кажется лучше приспособленным к облачному использованию, у меня никогда не было проблем с WebConfigurationManager.

  • Должен ли я использовать CloudConfigurationManager?
  • В чем разница между этими двумя?
  • В каких случаях CloudConfigurationManager будет вести себя отличным от
    WebConfigurationManager?

Ответ 1

CloudConfigurationManager позволяет нам читать файл конфигурации независимо от среды, в которой мы находимся.

Итак, вместо того, чтобы писать специальные инструкции кода среды, например, для файла web.config:

WebConfigurationManager.AppSettings [ "MySetting" ]

Для файла ServiceConfiguration.cscfg:

RoleEnvironment.GetConfigurationSettingValue( "MySetting" )

Мы можем написать инструкцию ниже, которая будет считывать значения из всех файлов конфигурации, то есть app.config, web.config и ServiceConfiguration.cscfg.

CloudConfigurationManager.GetSetting( "MySetting" )

Ответ 2

WebConfigurationManager и CloudConfigurationManager управлять различными конфигурационными файлами.

WebConfigurationManager предназначен для управления файлами веб-сайта web.config и его строками настроек и подключений

CloudConfigurationManager предназначен для управления файлами .cscfg(для облачных сервисов). Его преимущество в том, что вы можете напрямую управлять конфигурациями и соединениями с лазурным порталом.

Ответ 3

CloudConfigurationManager требуется сборка Microsoft.WindowsAzure.Configuration, часть Azure SDK или отдельный NuGet.

WebConfigurationManager требуется сборка System.Web.Configuration, часть .NET Framework.

Ответ 4

Я думаю, вам лучше использовать WebConfigurationManager. С его помощью у вас есть доступ к ConnectionStrings, а также AppSettings. Оба набора настроек вы можете обновить через Azure Portal. Затем они могут быть использованы в других средствах/услугах Azure, например при настройке резервного копирования веб-сайта. Проверьте это для получения дополнительной информации: https://azure.microsoft.com/en-us/blog/windows-azure-web-sites-how-application-strings-and-connection-strings-work/