我正在研究如何使我们的应用程序更易于扩展和更容易操作,而无需更改web.config(或者,在我们的例子中,包含appsettings节点的application.config文件).
我想到的一种方法是将应用程序设置保留在具有sqlcachedependancy的数据库表中.这意味着:
>无论何时在数据库中更改设置,缓存都将失效,并再次检索设置,从而实时更新应用程序,而无需更改文件并重新启动整个应用程序.
>我们可以创建一个自定义工具,允许我们更改设置.
我认为它的缺点是,这可能会导致严重的逻辑问题,如果你有一些东西在流程开始时检查一个appsetting,然后它改变了一半,你最终会无意中改变流程,就像否定了完整应用程序重启的要求.
这有什么方法吗?
有没有更好的方法来管理appsettings,以便您可以一次性为一台,几台或所有服务器远程更改它们?
解决方法:
我想你已经把两个主要的球员钉在了一起:
>您可以访问文件系统,并将所有设置放在过多的* .config文件中
要么:
>您无法访问服务器的文件系统(或访问权限非常有限),因此您可能最好将配置设置和用户首选项放在数据库中,基本上只需要将连接字符串留给磁盘上的配置文件
两种方法都有其优点和缺点.我一直在努力寻找一种从数据库字段“实现”配置部分的方法,这样我基本上只需使用配置XML,但存储在数据库字段中.不幸的是,整个.NET 2.0配置系统被“锁定”并且只假设数据来自文件 – 没有办法插入,例如一个数据库提供程序,允许配置系统从数据库字段中读取其内容:-(真的太糟糕了!
我见过的唯一另一种方法是微软提供的StockTrader 2.0 sample app中的“ConfigurationService”,但是对于我的需求,它感觉像是一种过度杀伤,就像一个非常复杂,非常重的子系统.