Текущая система настройки не поддерживает настройки, зависящие от пользователя.
Я пытаюсь использовать файл настроек для сохранения пользовательских настроек при входе в приложение.
Я определил их как user (scope), но я получаю
System.Configuration.ConfigurationErrorsException: The current configuration system does not support user-scoped settings.
Что может быть хорошим решением?
Ответы
Ответ 1
Настройки веб-приложения для веб-приложений действительно не поддерживаются. И они не будут работать, пользовательские настройки должны быть сохранены в папке Users\<username>\...
на сервере.
У вас есть широкий выбор веб-технологий:
- постоянные файлы cookie
- Профили членства ASP.NET
- ваш собственный Db
Ответ 2
Когда у меня возникла эта проблема, оказалось, что у меня есть ссылка на dll, в которой был файл Settings.settings(или Settings.Designer.cs).
Случается, что при редактировании файла Setting.settings при нажатии пустой строки внизу новая строка добавляется с информацией о шаблоне и пользовательской настройкой по умолчанию вместо настройки приложения. Это приятная функция, но вы можете увидеть, как после изменения шаблона и добавления новых параметров, а затем нажав ниже, чтобы потерять фокус, добавлена новая строка шаблона, и если вы не обращаете внимания, вы случайно добавляете пользовательские настройки. Проверьте, есть ли у вас этот файл в соответствующей DLL-ссылке и удалены любые пользовательские настройки.
![enter image description here]()
Ответ 3
Вы можете изменить параметры области приложения, просто добавив сеттер в определение свойства в 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
автоматически сгенерирован, и поэтому, если вы используете пользовательский интерфейс дизайнера, ваши сеттеры будут перезаписаны.
Это работает в консольных и веб-приложениях.