17

当他/她登录应用程序时,我正在尝试使用设置文件来存储用户首选项。

我将它们定义为用户(范围),但我得到

System.Configuration.ConfigurationErrorsException: The current configuration system does not support user-scoped settings.

什么可能是一个好的解决方案?

4

3 回答 3

16

当我遇到这个问题时,我发现我引用了一个包含 Settings.settings(或 Settings.Designer.cs)文件的 dll。

发生的情况是,在编辑 Setting.settings 文件时,单击底部的空白行后,会添加一个新行,其中包含模板信息和默认用户设置,而不是应用程序设置。这是一个不错的功能,但您可以看到更改模板并添加新设置后如何单击下方失去焦点添加了新模板行,如果您不注意,您会意外添加用户设置。检查您是否在引用的 dll 中有此文件并删除任何用户设置。

在此处输入图像描述

于 2012-12-04T20:44:49.813 回答
11

Web 应用程序确实不支持用户范围的设置。而且它们不起作用,用户设置必须保存在Users\<username>\...服务器上的文件夹下。

您有多种网络技术可供选择:

  • 持久性 cookie
  • ASP.NET 成员资格配置文件
  • 你自己的数据库
于 2012-03-25T22:10:08.657 回答
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是自动生成的,因此如果您使用设计器 UI,您的设置器将被覆盖。

这适用于控制台和 Web 应用程序。

于 2012-08-10T22:00:19.753 回答