web.Config 与数据库设置表

Posted

技术标签:

【中文标题】web.Config 与数据库设置表【英文标题】:web.Config vs Database Settings table 【发布时间】:2011-06-06 01:47:59 【问题描述】:

当您拥有一个包含多个应用程序、Web 服务和 Windows 服务的系统时,哪个更好?

选项 1) 将所有设置放在数据库表中并将其缓存在某处,可能您将不得不使用 Web 服务在应用程序之间共享缓存对象。然后,您可以在网格中查看其中一些设置以供用户操作。

选项 2) 将所有设置放在一个通用配置文件中,并让每个应用程序的 web.config 或 app.config 指向该文件,我相信有一种方法可以将这些设置放在一个网格中,但可能你将失去“根据角色显示设置”的能力。

谢谢

【问题讨论】:

【参考方案1】:

这在很大程度上取决于偏好、您所谈论的设置、您何时需要访问这些设置以及它们的更改频率。

一般来说,我尽量保持我的 web.config 和 app.config 很小。基础设施的设置(例如要加载的模块、连接字符串、日志设置、ORM 设置等)进入那里。基本上,我真正需要或想要在 App_start 或 Main() 方法中访问的任何内容。

任何更复杂的东西,或者适用于较少应用程序的东西,等等,我通常不会放入配置文件,而是有我通过 IoC 容器注入的设置对象,或者从数据库中提取它们.

【讨论】:

【参考方案2】:

我建议将配置放入数据库,然后根据应用程序检索它。您还可以编写包含不同配置的单个 XML 并将其加载到数据网格等上。这种方式的配置管理变得更容易,因为您需要维护一个文件。

【讨论】:

【参考方案3】:

我更喜欢选项 1,因为它使部署更容易,因为每个环境可以有不同的配置,但您仍然可以进行 xcopy 部署,因为设置不存储在 web.config 中。

【讨论】:

以上是关于web.Config 与数据库设置表的主要内容,如果未能解决你的问题,请参考以下文章

“&”字符会破坏存储在 web.config 中的密码

如何在 web.config 中配置 SMTP 设置

在 web.config 或 app.config 中存储分层应用程序设置

azure插槽交换和web.config设置

asp.net web.config的设置问题

应用设置与应用设置。应用设置过时了? [复制]