|Important||This document may not represent best practices for current development, links to downloads and other resources may no longer be valid. Current recommended version can be found here. ArchiveDisclaimer|
Managing Changes to Configuration Settings
The standard ASP.NET behavior is to restart an application when its configuration settings change. As a result, any state information for that application instance is lost.
If someone who does not have permission to edit the file attempts to change the configuration settings, the application will not restart.
You might want to preserve state information even if the configuration settings are changed. ASP.NET allows you to preserve the information in <appSettings>, <trace>, and any custom sections when you use them in conjunction with an external configuration file. The path for the external file is specified using the configSource section attribute. For more information, see configSource in General Attributes Inherited by Section Elements.
In an external configuration file, you can store configuration settings that you want to be able to change without causing the application to restart. To do so, set the restartOnExternalChanges attribute on the designated configuration section to false. To revert to the standard behavior, set the restartOnExternalChanges attribute to true.
A malicious user might use an application restart to try to disrupt your site. For this reason, you must guard the access to Web.config files by using strict ACLs, such as those listed in Securing ASP.NET Configuration.
For an example of the effects of changing the settings contained in an external configuration file, see Changing Configuration in External File Example.