configuration.Save(ConfigurationSaveMode.Modified, true)和configuration.Save()有什么区别?
背景:我有一个程序,在这里我操作一个web.config,用于配置WCFServices。我将其加载到一个Configuration对象中,更改一些属性并将其保存回去。当我使用configuration.Save(ConfigurationSaveMode.Modified, true)时,我得到了这样一个Exception:
“在应用程序级别之外使用已注册为allowDefinition='MachineToApplication‘的部分是错误的.”
当我使用configuration.Save()时,它就起作用了!异常的原因可能是我的<serviceActivations>中的web.config部分(异常指向本节)。
发布于 2010-10-18 14:53:46
要保存的默认参数是:
Save(ConfigurationSaveMode.Modified, false);因此,唯一的区别将是,您强制保存配置,即使它没有改变。有关详细信息,请参阅http://msdn.microsoft.com/en-us/library/ms134089.aspx。
发布于 2010-10-18 14:56:33
为什么要写configuration.Save(ConfigurationSaveMode.Modified, true(当:
第一种选择不是与第二种相反吗?
发布于 2010-10-18 15:03:59
ConfigurationSaveMode.Modified只将与应用程序/系统配置不同的配置部分保存到用户本地或漫游配置(即使用ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel)和ConfigurationUserLevel.PerUserRoaming或ConfigurationUserLevel.PerUserRoamingAndLocal)。
由于ASP.NET没有用户级别(和用户隔离存储),这是没有意义的。
从文档中可以看出,对于使用完全不同的配置设置继承模型的非ASP.NET Configuration.Save应用程序,ASP.NET是否真正有效。在实践中,使用WebConfigurationManager之一加载配置管理器可能是保存文件所必需的先决条件。
另一种方法可能是使用ConfigurationManager.OpenMappedExeConfiguration显式加载显式指定的文件。
https://stackoverflow.com/questions/3960296
复制相似问题