修改通过 '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);