在web.config或数据库中存储配置设置

10

最佳位置存储网站模块的各种配置设置是什么?

创建一个继承ConfigurationSection类的类,将设置映射到web.config文件中?
还是创建一些与数据库交互的DAL和BLL类?

5个回答

9
我使用了一个简单的启发式方法来将每个配置变量分类到以下四类之一:
  1. 编译时配置(与代码更改一起执行的更改)- 如果可能,嵌入在代码或汇编中(作为嵌入资源),否则在web.config中
  2. 服务器实例特定配置(SQL连接字符串,本地文件路径)- 在web.config中
  3. 应用程序(数据库)配置(功能选择和其他极少更改的全局应用程序设置)- 存储在数据库中,但没有用户界面
  4. 应用程序配置 - 存储在数据库中,并通过管理界面访问

5
将配置设置存储在 Web.config 文件中会导致如果您修改该文件,则应用程序将重新启动并且新设置将立即生效。 但是,如果您在多台计算机上运行应用程序,则需要更新每台计算机。
如果将配置设置存储在数据库中,则需要手动重启 Web 应用程序或拥有一个函数(例如管理员页面/站点)来允许应用程序重新读取设置。

3

实际回答问题:

基本信息需要在web.config中本地存储(例如连接字符串等)。

除此之外,其他信息可以存储在任意位置。

将其存储在数据库中意味着编写管理页面以控制信息比直接编辑web.config文件更容易。

更改频率如何? 如果设置是一次性的,则拥有管理页面可能会过度,但如果有持续更改(添加新用户、类别等),则它们可能是一个好主意。

此外,使用数据库中的数据,您可以对系统进行远程管理。

因此,在没有更多关于您的应用程序的信息的情况下,我无法做出建议。


我不是在谈论用户的设置,而是在谈论管理员可以设置的站点配置。 - luppi
例如特定模块的数据库连接字符串,该模块的缓存持续时间等。 - luppi
@luppi - 回答错了问题。我现在已经更新了答案。 - ChrisF

0
在大多数情况下,您需要为每个页面上的每个模块设置单独的设置。因此,您需要将它们保存在数据库中。

0

创建一个配置部分。它非常直截了当,适合您的需求。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接