我在寻找办法,使我们申请多个可扩展和更易于操纵,而无需改变的网络。config(或者,在我们的情况下,应用程序。配置文件,其中包含的若节点)。

一个我已经想到有关保留的应用程序设置的数据库表,有一个sqlcachedependancy.这意味着:

  • 任何时候一定是改变了在数据库,缓存变为无效,设置是再次检索,从而更新的应用程序的实时不具有改变的文件并重新启动整个应用程序。
  • 我们可以创建一个自定义的工具,它使我们可以改变设置。

缺点,因为我看到它是这可能会导致严重的逻辑问题在于,如果你有什么事情,检查一appsetting在开始的一个进程,它随后的变化过了一半,你最终可能会无意中改变工艺流程,作为要求对一个完整的应用程序重新启动是否定的。

有没有办法这一轮?

是有一个更好的方法来管理若,这样就可以改变它们的飞行进行远程的一个、几个或所有服务器中的一种去吗?

有帮助吗?

解决方案

我认为你钉的两个主要员:

  • 要么你有访问文件系统和你把你所有的设置过多*。配置文件

或者:

  • 你没有接入(或者只能非常有限的访问)服务器的文件系统和因此你可能正好把配置设置和用户喜好的数据库,基本上留下什么,但连串的配置文件的磁盘上

这两种方法都有其优点和缺点。我一直在试图对一个长时间找到一种方法"实现"一个配置部分从一种数据库字段,这样我就可以基本上只是使用config XML,但是存储在数据库字段。不幸的是,整个.网2.0的配置系统是非常"锁定"和仅仅只是假设的数据将来自文件-没办法插例如数据库的供应商,以允许配置系统来阅读其内容从一个数据库字段:-(真的太糟糕了!

唯一的其他方法,我看到的是一个"ConfigurationService"在 StockTrader2.0样本应用程序 由微软公司提供的,但我需要感觉就像矫枉过正,并像一个非常复杂的,真的很重-量子系统。

其他提示

你的 可能 使用源码,这将是一个自含DB在一个单一的文件。一石二鸟?

如果你参考外部的配置文件,该文件包含若(离其他一切都在正常应用程序。config)然后,我认为,编辑这只重新装这些设置的,它不力的整个程序重新启动。

有一个类似的问题的主题上:嵌套应用程序。config(网络。config)的文件

占据一席之地的问题值改变中的程序的执行,我想你可以在当地高速缓存的价值,提高一个事件,当他们改变,允许程序以达到一个合适点之前使用的更新值。

我认为在asp.net 我们获得这种免费的,因为每一页生命周期不同,因此值是简单地应用于新的一页的请求,而不是中间的执行。

编辑:一个小小的额外信息:

结构变化导致重新启动的应用领域

MSDN:

改变结构设置在网络。配置文件间接引起的应用领域重新启动。这种行为的发生是通过设计。你可以选择使用configSource属性参考的外部结构的文件不会导致重新启动当更改。更多信息,请参阅configSource一般属性的继承部分的要素。

更多信息 ConfigurationManager类系统。配置namespace 它可以用来修改配置文件编程方式(即在一个自定义的工具,如果有关盘读的权限,可以提供)。如果你坚持到使用建立在配置课程,我认为改变外部配置,将不会造成申请重新启动,但会增加的活动(例如 酒店变了),你可以处理,以确保你的代码没有被改变设置。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top