Текущая конфигурация системы не поддерживает пользовательские настройки
Я пытаюсь использовать файл настроек для хранения пользовательских настроек, когда он / она входит в приложение.
Я определил их как пользователя (область), но я получаю
System.Configuration.ConfigurationErrorsException: The current configuration system does not support user-scoped settings.
Что может быть хорошим решением?
3 ответа
Настройки пользовательской области действительно не поддерживаются для веб-приложения. И они не будут работать, пользовательские настройки должны быть сохранены под Users\<username>\...
папка на сервере.
У вас есть большой выбор веб-методов:
- постоянные куки
- Профили членства в ASP.NET
- ваш собственный Db
Когда у меня возникла эта проблема, оказалось, что у меня была ссылка на dll, в которой был файл Settings.settings (или Settings.Designer.cs).
Происходит следующее: при редактировании файла Setting.settings после нажатия на пустую строку внизу добавляется новая строка с информацией о шаблоне и пользовательскими настройками по умолчанию вместо настроек приложения. Это хорошая функция, но вы могли видеть, как после изменения шаблона и добавления нового параметра, а затем нажатия ниже, чтобы потерять фокус, добавляется новая строка шаблона, и, если вы не обращаете на это внимания, вы случайно добавляете пользовательский параметр. Проверьте, есть ли этот файл в dll, на который есть ссылка, и удалите все пользовательские настройки.
Вы можете сделать настройки области приложения доступными для записи, просто добавив установщик в определение свойства в Settings.Designer.cs
, Например:
[global::System.Configuration.ApplicationScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("AdminContext")]
public string DbContext
{
get { return ((string)(this["DbContext"])); }
set { this["DbContext"] = value; } }
Предостережение заключается в том, что Settings.Designer.cs
автоматически генерируется, и поэтому, если вы используете дизайнерский интерфейс, ваши установщики будут перезаписаны.
Это работает в консольных и веб-приложениях.