Измените appSettings в пользовательском конфигурационном файле, на который ссылается атрибут file
В appSettings
раздел Web.config 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, потому что оно не будет перезапускать приложение ( источник).
var configuration = WebConfigurationManager.OpenWebConfiguration("~/");
configuration.AppSettings.Settings[key].Value = value.ToString();
configuration.Save();
Это не работает так же хорошо.
var configuration = WebConfigurationManager.OpenWebConfiguration("~/CustomAppSettings.config");
Что я делаю неправильно? Может ли кто-нибудь указать мне правильное направление?
1 ответ
Решение
Используйте configSource вместо файла.
<appSettings configSource="CustomAppSettings.config" />
используйте ConfigurationSaveMode.Minimal при сохранении.
var configuration = WebConfigurationManager.OpenWebConfiguration("~/");
configuration.AppSettings.Settings[key].Value = value.ToString();
configuration.Save(ConfigurationSaveMode.Minimal);