[英]Changing the Web.config file key value at runtime using C# without changing the structure of the file
[英]Changing cloud service web.config at runtime
我正在尝试在Windows Azure上更改已部署的云服务(在本例中为WCF)的web.config,当我尝试在运行时更改web.config中的appSettings时,出现权限被拒绝错误:
Access to the path 'E:\sitesroot\0\web.config' is denied.
有没有办法解决这个问题?
乔尼S是正确的。 您应该将要在运行时更改的设置存储在角色配置中。 如果Azure移动您的VM,则web.config
更改将丢失,并且在多实例方案中,您的实例将不同步。 您可以使用roleenvironmentchanging
事件来管理角色实例如何响应配置更改。
有关roleenvironmentchanging
事件的更多信息,请访问http://msdn.microsoft.com/zh-cn/library/windowsazure/gg432963.aspx
您应该将在运行时需要更改的所有设置存储在Role的ServiceConfiguration(cscfg)中,然后在代码中使用以下内容来检索该设置:
string setting = RoleEnvironment.GetConfigurationSettingValue("myConfigSetting");
部署后,您可以通过管理门户更改ServiceConfiguration中的值。
如果您将RDP设置为Web角色,则应该能够为登录用户的web.config文件添加权限。 然后,您可以修改web.config。 正如@Adil提到的那样,这将导致AppDomain回收,因此仅应在万不得已的情况下进行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.