Применение изменений в настроечных файлах
Когда пользователь впервые осуществляет доступ по URL, ASP.NET просматривает файл machine.config и все применимые к этой ситуации файлы web.config и определяет, какие настроечные параметры нужно применить к этому URL. Затем эта информация кэшируется, так что при следующем запросе к этому URL она будет доступна, и ее не нужно заново считывать из настроечных файлов. Когда в один из используемых настроечных файлов вносится изменение, кэшированные параметры удаляются, и при следующем обращении к этому URL процесс повторяется с самого начала.
Так как приложения не должны держать эти файлы открытыми в процессе выполнения, вы можете свободно изменять их, не беспокоясь об остановке приложения. После внесения всех изменений можно просто сохранить файл, и при следующем доступе к соответствующей странице настройки будут применены – практически незаметно для пользователей, посещающих ваш сайт.
Настроечные файлы не требуют компиляции, что одновременно является как достоинством, так и недостатком. Положительно то, что можно редактировать файлы в обычном текстовом редакторе, не требуя никаких специальных приложений или компилятора. А недостаток заключается в том, что не существует промежуточного шага между модификацией файла и перекомпиляцией приложения с новой конфигурацией. Если указано неверное значение, приложение выдаст при компиляции сообщение об ошибке, или, если изменение внесено в файл machine.config, все приложения выдадут такое сообщение, что сделает приложение недоступным для пользователей, пока ошибка не будет исправлена. По этой причине хорошей идеей является тестирование изменений настроек на сервере для разработки, и только затем внесение изменений на рабочем сервере.