2011-07-05 60 views
3

我们在我们的asp.net应用程序中有很多appSettings。将它们移动到数据库是一个不错的主意。我知道一个好处是很容易维护和做行政活动。我需要知道是否有人遇到任何问题。在数据库中存储应用程序设置

+1

我希望你的数据库字符串不在appsetting;)。根据使用情况,在数据库中访问它们会更慢。 – Peter

+0

@peer我不同意你关于缓慢的观点。你有没有做过任何测量? – Illuminati

+2

最初速度较慢,但​​在缓存时应该尽可能快。 –

回答

1

我们在配置中没有任何appsettings,但由于配置数量巨大,所以维护一个单独的数据库表。这没有问题。当然,我们必须使用一些缓存来防止与配置信息相关的太多查询。

0

使用app.config/web.config/database/cache /定制解决方案来存储配置值是所有有效的选项。

你选择的方法确实取决于你对你,你的团队和你的应用程序适合你的情况。

0

我期望这样做会给你一个性能问题,因为appSettings被加载到内存中,应用程序被加载,然后如果web.config被更新,然后重新加载。如果您将它们存储在数据库中,那么您每次都需要点击数据库。

我无法说明性能差异的等级,因此它可能会或可能不是问题。

+0

是的,但那就是为什么你有缓存权利? – Illuminati

+0

@Bumble Bee - 当然,您正在依赖某些内容来使缓存条目无效,或者您在更新的设置中会有滞后。我的期望是,重新加载会比从数据库加载更快,使用更少的资源。我怀疑这个好处取决于你的设置。例如。如果您的应用程序通过多个服务器,那么从管理员的角度来看,将这些应用程序保存在中央数据库中会更容易。 – detaylor

+0

的确如此,但在我们的案例中,我们已经在Setters中实施了无效化,并且您对可维护性是正确的。我们有数百个配置,因此将它们作为appsettings将会是一场噩梦。 – Illuminati

1

有很多事情可以做,以减少应用程序设置的数量,并使他们更容易维护。他们每个人都有自己的积极和消极。把它们移到一个数据库是一个,它可以帮助提高可维护性(并且可以让你建立一个前端来监视和调整它们而不需要回收)。或者,您可能希望将它们中的一些组合到自定义部分中,如果它们是相关的,那么使它们更好地记录下来,而不仅仅是关键值对。

如果他们进入数据库,您需要考虑缓存它们,以及如何管理缓存。

没有普遍的答案。这将取决于你的情况。

0

Asp.net有一个实现自定义提供程序配置的机制。我已经研究过多个服务器需要相同配置的情况,因此拥有共享配置会很好。关于它的文件非常少。

您还面临web.config文件被监视的问题,因此任何更改都会提示应用程序重新启动。有了数据库,你需要一个替代机制来解决这个问题,或者解决它,或者没有。

更简单的是定义一个自定义配置节。

Simon

+0

实现自定义配置提供程序的机制是什么? – Jeremy

+0

这可能有所帮助:http://pknopf.com/blog/read-net-configuration-from-a-database –

相关问题