Текущая конфигурация системы не поддерживает пользовательские настройки

Я пытаюсь использовать файл настроек для хранения пользовательских настроек, когда он / она входит в приложение.

Я определил их как пользователя (область), но я получаю

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 автоматически генерируется, и поэтому, если вы используете дизайнерский интерфейс, ваши установщики будут перезаписаны.

Это работает в консольных и веб-приложениях.

Другие вопросы по тегам