Asp.net web.Config vs数据库设置表

Asp.net web.Config vs数据库设置表,asp.net,architecture,settings,Asp.net,Architecture,Settings,当您有一个包含多个应用程序、web服务和windows服务的系统时,哪个选项更好 选项1)将所有设置放在数据库表中,并将其缓存到某个位置,可能需要使用web服务在应用程序之间共享缓存对象。然后,您可以在网格中查看其中的一些设置,以供用户操作 选项2)将所有设置放在一个公共配置文件中,并让每个应用程序的web.config或app.config指向该文件,我相信有一种方法可以将这些设置放在网格中,但可能会失去“根据角色显示设置”的功能 谢谢这很大程度上取决于您的偏好、您正在谈论的设置、您何时需要访

当您有一个包含多个应用程序、web服务和windows服务的系统时,哪个选项更好

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

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


谢谢

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

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


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

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

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