Переместить настройки конфигурации из web.config в ServiceConfiguration.cscfg

#asp.net #c #azure

#asp.net #c #azure

Вопрос:

Если я перемещаю настройки конфигурации из своего Web.config в Aazure ServiceConfiguration.cscfg, нужно ли мне вносить какие-либо изменения в код

Например, у меня есть следующие записи в моем Web.config

<ConfigurationSettings>
<Setting name="webConfigHostName" value="Test.AzureTest" />
</ConfigurationSettings>

Чтобы прочитать приведенную выше запись, я использую

 string myHostName=MyEnvironmentWrapper.GetConfigurationSettingValue("webConfigHostName");
  

Теперь я хочу переместить свое веб-приложение в облачную среду Azure

Итак, я планирую переместить вышеуказанные записи web.config в мой ServiceConfiguration.csfg После этого мне нужно внести какие-либо изменения в код, чтобы мое приложение могло читать «webConfigHostName» непосредственно из моего ServiceConfiguration.csfg

Ответ №1:

Я боюсь (в старые времена, см. Ниже), что вы сделали:

 if (RoleEnvironment.IsAvailable)
{
    return RoleEnvironment.GetConfigurationSettingValue("mySetting");
}
else
{
    return ConfigurationManager.AppSettings["mySetting"].ToString();
    // or whatever your configuration system requires
}
  

Здесь и здесь есть несколько отличных сообщений об этом.

В итоге мы написали собственную оболочку вокруг этого, чтобы сделать наше приложение независимым, поэтому в нашем коде мы используем статический Configuration.GetValue() . Быстрый глобальный поиск и замена, и мы ушли.


РЕДАКТИРОВАТЬ: Сегодня это проще: см. Ссылку MSDN для CloudConfigurationManager .

Комментарии:

1. это отлично работает. Я создал проект на GitHub, который использует свободный интерфейс для создания этих изменений конфигурации. Со временем я буду обновлять его, чтобы также помочь с настройками приложений. github.com/SyntaxC4/WindowsAzureConnectionStringResolver

2. Теперь это поддерживается (с июня 2012 года) в Azure SDK: msdn.microsoft.com/en-us/LIBRARY /…

3. О, прекрасно! Я внес изменения в свой ответ. Спасибо.