我正在尝试在Windows Azure上更改已部署的云服务(在本例中为WCF)的web.config,当我尝试在运行时更改web.config中的appSettings时,我正在获得权限被拒绝错误:
Access to the path 'E:\sitesroot\0\web.config' is denied.
有没有办法解决这个问题?
答案 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回收,所以应该只是作为最后的手段来完成。