2013-03-15 6 views
1

Я пытаюсь изменить web.config развернутой облачной службы (WCF в этом случае) в Windows Azure и когда я пытаюсь изменить appSettings в web.config на время выполнения, я получаю разрешение отклонено:Изменение облачного сервиса web.config во время выполнения

Access to the path 'E:\sitesroot\0\web.config' is denied. 

Есть ли способ исправить это?

ответ

5

Jonny S является правильным. Вы должны сохранять настройки, которые вы хотите изменить во время выполнения в настройке ролей. Изменения web.config будут потеряны, если Azure переместит вашу виртуальную машину и в сценарии с несколькими экземплярами ваши экземпляры будут не синхронизированы. Вы можете использовать событие roleenvironmentchanging для управления тем, как экземпляр роли отвечает на изменение конфигурации.

Для получения дополнительной информации о roleenvironmentchanging случае проверить http://msdn.microsoft.com/en-us/library/windowsazure/gg432963.aspx

-2

Если вы используете RDP в роли в Интернете, вы должны иметь возможность добавлять разрешения в файл web.config для зарегистрированного пользователя. Затем вы можете изменить файл web.config. Как упоминает @Adil, это приведет к тому, что AppDomain будет перерабатываться, поэтому это должно быть сделано только в крайнем случае.

+1

Вы никогда не должны RDP к Azure VM и внести изменения, если вы просто делаете это для целей DEV/тестирования. Как упоминает Джоэл в своем ответе, ваши изменения могут быть потеряны в любое время. – kwill

+0

Вот почему я сказал использовать его как последнее средство. – QFDev

2

Вы должны хранить любые настройки, которые необходимо изменить во время выполнения в ServiceConfiguration (cscfg) вашей роли, а затем использовать его в вашем коде, чтобы получить настройки:

string setting = RoleEnvironment.GetConfigurationSettingValue("myConfigSetting"); 

Вы можете изменять значения в ServiceConfiguration через портал управления после развертывания.

Смежные вопросы