From the basis a web.config file is a nothing but a simple XML configuration file. So it is a theoretical as well as practically possible to keep more than one configuration file in a single ASP.NET web application
Microsoft ASP.Net provides a configuration system that can be used to keep our applications flexible at run-time. In this article, mentioning how to manage more than one .config file in a single ASP.Net web application. The usage of multiple configuration file makes the application more secure and manageable and flexible.
Web.config exposes an <appSettings> element that can be used as a place to store application settings like connection strings, file paths, etc. Using the web.config is an ideal method of creating a robust application that can quickly adapt to changes in its environment. For instance, if the connection string is stored in web.config and is being called from the web-pages from there, then changes in the connection string will have to be made in web.config only. Otherwise, the user would have to go to each page individually and update the connection string.
Web.Config file
<?xml
version="1.0"?>
<configuration>
<appSettings/>
<connectionStrings/>
<system.web>
<compilation
debug="false"
strict="false"
explicit="true" />
</system.web>
<appSettings>
<add
key="myConnInfo" value="server=_;database=_;user=_;pass=_;" />
</appSettings>
</configuration>
Multiple Config Files
The appSettings element can contain a file attribute that points to an external file. Just change my web.config file to look like the following:
<?xml
version="1.0"?>
<configuration>
<appSettings/>
<connectionStrings/>
<system.web>
<compilation
debug="false"
strict="false"
explicit="true" />
</system.web>
<appSettings
file="externalSettings.config"/>
</configuration>
Next, we can create the external file "externalSettings.config" and add an appSettings section with our connection information and any other settings that we want to use.
If the external file is present, ASP.Net combines the appSettings values from web.config with those in the external file. If a key/value exists in both files, then ASP.Net will use the setting from the external file.
This feature is useful when one keeps user-specific or environment-specific settings in the external file. It is better to design web.config to contain those settings that are global, while each user setting is contained in an external file. This approach makes it easier to move around global web.config changes.
One caution to this approach is that ASP.Net runtime does not detect when the external file changes. Thus to launch a new version of the application with all changes in effect, one will need to make changes to the web.config itself.