在asp.net web应用程序处理的配置设置(Handling configuration set

2019-08-31 08:41发布

我有200多个配置设置的Web应用程序。 这些控制一切从用户界面到业务逻辑。

如果这些可以在应用程序启动检索或在需要时他们?

他们应该有ISettings接口需要的时候被注入。

请告诉我你的意见呢?

更新:可在应用程序,以便它们存储在数据库中开启和关闭。 有些是按照用户设置的,有些是应用广泛。 现在的思考?

Answer 1:

我们有很多的配置设置,太。 我们将它们存储在中央数据库中的表。 在第一次访问,我们从数据库中加载所有这些,他们在高速缓存存储与1分钟绝对过期。 这让我们有我们的配置设置在内存中的副本,同时也让我们能够推动我们知道将被应用,最多1分钟配置更新。

因此,它是一种混合型的。 对配置设置的第一个请求,它们都被加载并存储在高速缓冲存储器。 这个操作是非常轻的重量,所以有它发生的每一分钟是不是什么大不了我们。

你的旅费可能会改变。



Answer 2:

根据需要,我会找回它。 ASP.NET缓存自动此数据为您服务。 这是不是做一个文件,每次读取。 试着改变你的web.config文件中,而它的运行,你会看到,它杀死所有的会议,并有效地重置您的应用程序。

不要过分复杂化这一点。 在web.config中这些设置的目的是用于你需要访问整个应用程序设置。 MS已为您提供的库来访问他们所做的工作,使这个过程尽可能快。 也许如果你有成千上万的设置或东西,你也许能找到更好的缓存算法,但是这将是一个罕见的情况。

花你的代码的其他部分的时间,没有太多的改变,你如何访问web.config中应用的设置来获得。

更新:如果设置应用广泛然后使用web.config中。 如果它们是用户特定的,并存储在一个数据库,然后将它们存储在用户的会话在迹象。有人说用于用户特定设置Cookie,但如果你知道用户是谁那么它是更好的使用,因为它的会话防止被回发到服务器与来自用户的每个请求一个大的cookie。



Answer 3:

我同意凯尔,不要过于复杂的事情,只是使用.NET框架类检索的值。 通常的Web.config在这里你会留住他们。
但是我建议创建访问一个简单的静态类:

using System.Configuration // Add a reference for this... ;

public static class Config
{
  public static string DbConnection
  {
    get
    {
      return ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
    }
  }

  public static string SomeValue
  {
    get 
    {
      return ConfigurationManager.AppSettings["SomeValue"].ToString();
    }
  }
}

它会给你强类型的值,并方便地访问。 你也可以像这样一类执行某种验证。 非常便利。 如果您以后决定不使用web.config中,这个类是容易改变到其他地方检索值。



Answer 4:

每MSDN ISettings被用于VS工具托管设置- >选项。 似乎不是一个很好的候选人一个web应用程序。 通常,应用程序设置使用ConfiguraionManager.Appsettings [“键名”]得到指定键的最新值按需加载。 您可以随时在缓存中的Application_Start设置,如果你你肯定知道的是,虽然应用程序是活着的价值永远不会改变,只是使用ConfigurationManager.AppSettings从web.Confg每次读它的好处[“键名”]是的ASP.NET运行时将检测到的web.config变化(当你修改应用程序的设定值,例如),并给你的关键的最新值。



文章来源: Handling configuration settings in asp.net web application