We use a combination of web.config parameters and database level settings.
For each parameter, we ask the following question: "Is this parameter specific to the device in which the application is running?" If so, then it goes to web.config. If not, we ask an additional question: "If this parameter is changed, should the application be restarted?" If yes, web.config. Most often, rebooting is not suitable for our service level agreements.
Most of our applications are multi-user and / or running in a web farm. Simple things, such as the local file system path, logging level, or database connection strings, are in the web.config file. The reason is that they are dealing with resources specific to this machine.
Almost everything else will affect the execution of the program and should be available for both applications and data layers. In addition, they are usually needed by other applications (provided that several applications fall into the same database).
source share