修改通过 'file' 属性引用的自定义配置文件中的 appSettings
Modify appSettings in the custom config file which is referenced via 'file' attribute
在 Web.config 的 appSettings
部分中,使用 file
属性来引用自定义配置文件。目标是有可能修改自定义配置中的某些应用程序设置,而不会导致应用程序重新启动。
Web.config
<appSettings file="CustomAppSettings.config">
<add key="key1" value="val2" />
</appSettings>
CustomAppSettings.config
<?xml version="1.0" encoding="utf-8" ?>
<appSettings>
<add key="customKey1" value="custVal2"/>
</appSettings>
以下代码无效。它将值保存到 Web.config 但预期是将其保存到 CustomAppSettings.config 因为它不会重新启动应用程序(Source)。
var configuration = WebConfigurationManager.OpenWebConfiguration("~/");
configuration.AppSettings.Settings[key].Value = value.ToString();
configuration.Save();
这也行不通。
var configuration = WebConfigurationManager.OpenWebConfiguration("~/CustomAppSettings.config");
我做错了什么?有人能给我指出正确的方向吗?
使用 configSource 而不是 file.
<appSettings configSource="CustomAppSettings.config" />
使用 ConfigurationSaveMode.Minimal 节省。
var configuration = WebConfigurationManager.OpenWebConfiguration("~/");
configuration.AppSettings.Settings[key].Value = value.ToString();
configuration.Save(ConfigurationSaveMode.Minimal);
在 Web.config 的 appSettings
部分中,使用 file
属性来引用自定义配置文件。目标是有可能修改自定义配置中的某些应用程序设置,而不会导致应用程序重新启动。
Web.config
<appSettings file="CustomAppSettings.config">
<add key="key1" value="val2" />
</appSettings>
CustomAppSettings.config
<?xml version="1.0" encoding="utf-8" ?>
<appSettings>
<add key="customKey1" value="custVal2"/>
</appSettings>
以下代码无效。它将值保存到 Web.config 但预期是将其保存到 CustomAppSettings.config 因为它不会重新启动应用程序(Source)。
var configuration = WebConfigurationManager.OpenWebConfiguration("~/");
configuration.AppSettings.Settings[key].Value = value.ToString();
configuration.Save();
这也行不通。
var configuration = WebConfigurationManager.OpenWebConfiguration("~/CustomAppSettings.config");
我做错了什么?有人能给我指出正确的方向吗?
使用 configSource 而不是 file.
<appSettings configSource="CustomAppSettings.config" />
使用 ConfigurationSaveMode.Minimal 节省。
var configuration = WebConfigurationManager.OpenWebConfiguration("~/");
configuration.AppSettings.Settings[key].Value = value.ToString();
configuration.Save(ConfigurationSaveMode.Minimal);