首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >System.Configuration:关于Configuration.Save方法的问题

System.Configuration:关于Configuration.Save方法的问题
EN

Stack Overflow用户
提问于 2010-10-18 14:45:12
回答 3查看 875关注 0票数 0

configuration.Save(ConfigurationSaveMode.Modified, true)configuration.Save()有什么区别?

背景:我有一个程序,在这里我操作一个web.config,用于配置WCFServices。我将其加载到一个Configuration对象中,更改一些属性并将其保存回去。当我使用configuration.Save(ConfigurationSaveMode.Modified, true)时,我得到了这样一个Exception

“在应用程序级别之外使用已注册为allowDefinition='MachineToApplication‘的部分是错误的.”

当我使用configuration.Save()时,它就起作用了!异常的原因可能是我的<serviceActivations>中的web.config部分(异常指向本节)。

EN

回答 3

Stack Overflow用户

发布于 2010-10-18 14:53:46

要保存的默认参数是:

代码语言:javascript
复制
Save(ConfigurationSaveMode.Modified, false);

因此,唯一的区别将是,您强制保存配置,即使它没有改变。有关详细信息,请参阅http://msdn.microsoft.com/en-us/library/ms134089.aspx

票数 1
EN

Stack Overflow用户

发布于 2010-10-18 14:56:33

为什么要写configuration.Save(ConfigurationSaveMode.Modified, true(当:

  • ConfigurationSaveMode.Modified的意思是:导致只将修改后的属性写入配置文件,即使该值与继承的值相同。
  • 真实手段:即使配置未被修改,也要保存;否则为false。

第一种选择不是与第二种相反吗?

票数 1
EN

Stack Overflow用户

发布于 2010-10-18 15:03:59

ConfigurationSaveMode.Modified只将与应用程序/系统配置不同的配置部分保存到用户本地或漫游配置(即使用ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel)ConfigurationUserLevel.PerUserRoamingConfigurationUserLevel.PerUserRoamingAndLocal)。

由于ASP.NET没有用户级别(和用户隔离存储),这是没有意义的。

从文档中可以看出,对于使用完全不同的配置设置继承模型的非ASP.NET Configuration.Save应用程序,ASP.NET是否真正有效。在实践中,使用WebConfigurationManager之一加载配置管理器可能是保存文件所必需的先决条件。

另一种方法可能是使用ConfigurationManager.OpenMappedExeConfiguration显式加载显式指定的文件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3960296

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档