c# – 使用数据库保存应用程序设置

我正在研究如何使我们的应用程序更易于扩展和更容易操作,而无需更改web.config(或者,在我们的例子中,包含appsettings节点的application.config文件).

我想到的一种方法是将应用程序设置保留在具有sqlcachedependancy的数据库表中.这意味着:

>无论何时在数据库中更改设置,缓存都将失效,并再次检索设置,从而实时更新应用程序,而无需更改文件并重新启动整个应用程序.
>我们可以创建一个自定义工具,允许我们更改设置.

我认为它的缺点是,这可能会导致严重的逻辑问题,如果你有一些东西在流程开始时检查一个appsetting,然后它改变了一半,你最终会无意中改变流程,就像否定了完整应用程序重启的要求.

这有什么方法吗?

有没有更好的方法来管理appsettings,以便您可以一次性为一台,几台或所有服务器远程更改它们?

解决方法:

我想你已经把两个主要的球员钉在了一起:

>您可以访问文件系统,并将所有设置放在过多的* .config文件中

要么:

>您无法访问服务器的文件系统(或访问权限非常有限),因此您可能最好将配置设置和用户首选项放在数据库中,基本上只需要将连接字符串留给磁盘上的配置文件

两种方法都有其优点和缺点.我一直在努力寻找一种从数据库字段“实现”配置部分的方法,这样我基本上只需使用配置XML,但存储在数据库字段中.不幸的是,整个.NET 2.0配置系统被“锁定”并且只假设数据来自文件 – 没有办法插入,例如一个数据库提供程序,允许配置系统从数据库字段中读取其内容:-(真的太糟糕了!

我见过的唯一另一种方法是微软提供的StockTrader 2.0 sample app中的“ConfigurationService”,但是对于我的需求,它感觉像是一种过度杀伤,就像一个非常复杂,非常重的子系统.

上一篇:c# – 存储和检索应用程序设置的正确方法是什么?


下一篇:读取 appsettings.json