configuration.Save(ConfigurationSaveMode.Modified, true)
和configuration.Save()
之间的区别是什么?
后台:我有一个程序,我操作web.config
,我用它来配置 WCF服务。我将其加载到Configuration
对象中,更改一些属性并将其保存回来。当我使用configuration.Save(ConfigurationSaveMode.Modified, true)
时,我得到Exception
这样的内容:
“在应用程序级别之外使用注册为allowDefinition ='MachineToApplication'的部分是错误的......”
当我使用configuration.Save()
时,它会起作用!异常的原因可能是我的web.config中的<serviceActivations>
部分(本节的例外情况)
答案 0 :(得分:1)
保存的默认参数是:
Save(ConfigurationSaveMode.Modified, false);
所以唯一的区别是你强制保存配置,即使它没有改变。有关详细信息,请参阅http://msdn.microsoft.com/en-us/library/ms134089.aspx。
答案 1 :(得分:1)
为什么要在以下时间写configuration.Save(ConfigurationSaveMode.Modified, true
}:
第一个选项不是第二个选项吗?
答案 2 :(得分:0)
ConfigurationSaveMode.Modified
仅将与应用程序/系统配置不同的配置部分保存到用户本地或漫游配置(即ConfigurationUserLevel.PerUserRoaming
使用ConfigurationUserLevel.PerUserRoamingAndLocal
或{{1}} })。
由于ASP.NET没有用户级别(和用户隔离存储),因此没有意义。
从文档中不清楚任何ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel)
重载是否真的适用于ASP.NET,它使用完全不同的配置设置继承模型到非ASP.NET .NET应用程序。实际上,使用其中一个Configuration.Save
加载配置管理器可能是保存文件的必要前提条件。
另一种方法可能是使用WebConfigurationManager
显式加载明确指定的文件。