Does RoleEnvironment.GetConfigurationSettingValue читается каждый раз из cfg файла?

Параметр azure role очень полезен, так как позволяет вам изменять значения на лету, пока работает IIS. Но проблема в том, что если у вас много пользователей, и если он читает каждый раз значение конфигурации из файла, использовать его не рекомендуется, не ставя его в статическую переменную. Следующая проблема, если вы поместите ее в старую переменную , тогда вы должны reset IIS каждый раз, когда вы ее изменяете. Я провел некоторое исследование и нашел аналогичный вопрос в stackoverflow, который говорит, что только первый раз читает conf на файле, а затем хранит его в кеше. Но на этот вопрос ответили ConfigurationManager, мой вопрос о RoleManager от Azure.

Это строка, которая получает текущую настройку на azure:

RoleEnvironment.GetConfigurationSettingValue("Appname.settingKey");

Это тот, который сохраняет его в кеше, который я знаю, как он работает, и получает текущую настройку, например: connectionstring в webconfig:

ConfigurationManager.ConnectionStrings["SettingKey"].ConnectionString;

Ответ 1

https://msdn.microsoft.com/en-us/library/azure/microsoft.windowsazure.serviceruntime.roleenvironment.changed.aspx Вот ссылка для изменения.

Если вы следуете типам вниз, вы можете перейти к: https://msdn.microsoft.com/en-us/library/azure/microsoft.windowsazure.serviceruntime.roleenvironmentchange.aspx

который является типом, отправленным в событие "Изменено" для изменений вообще.

В частности, это обновление значения конфигурации: https://msdn.microsoft.com/en-us/library/azure/microsoft.windowsazure.serviceruntime.roleenvironmentconfigurationsettingchange.aspx

Здесь перечислены параметры, которые были изменены. Обратите внимание, что он НЕ включает значения, которые были изменены, только имена параметров, это связано с тем, что событие Changed также сбрасывает кеш конфигурации, поэтому вы читаете его снова, так как произошли изменения.

Ответ 2

Он не будет считывать конфигурацию каждый раз, когда вы запрашиваете значение. Значения конфигурации будут обновлены в событиях RoleEnvironment.Changed.