在运行时更改云服务web.config

时间:2013-03-15 16:08:39

标签: c# asp.net wcf azure

我正在尝试在Windows Azure上更改已部署的云服务(在本例中为WCF)的web.config,当我尝试在运行时更改web.config中的appSettings时,我正在获得权限被拒绝错误:

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

有没有办法解决这个问题?

3 个答案:

答案 0 :(得分:5)

Jonny S是对的。您应该在角色配置中存储要在运行时更改的设置。如果Azure移动您的VM,web.config更改将丢失,而在多实例方案中,您的实例将不同步。您可以使用roleenvironmentchanging事件来管理角色实例如何响应配置更改。

有关roleenvironmentchanging事件检查http://msdn.microsoft.com/en-us/library/windowsazure/gg432963.aspx

的更多信息

答案 1 :(得分:2)

您应该在角色的ServiceConfiguration(cscfg)中存储运行时需要更改的所有设置,然后在代码中使用以下内容来检索设置:

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

部署后,您可以通过管理门户更改ServiceConfiguration中的值。

答案 2 :(得分:-2)

如果您使用RDP进入Web角色,则应该能够为登录用户的web.config文件添加权限。然后,您可以修改web.config。正如@Adil所提到的,这会导致AppDomain回收,所以应该只是作为最后的手段来完成。