если он кэширован, что произойдет, если я использую несколько web.config в многоуровневых папках
Является ли web.config или app.config кэширован в памяти
Ответ 1
Все они кэшируются.
Конфигурация читается один раз при запуске. С помощью web.config IIS наблюдает за изменениями файлов и перезапускает приложение.
Ответ 2
ОК, поэтому у вас не будет функции KEY в области файлов Web.Config.
Да, web.config кэшируется, и изменение содержимого файла приведет к перезагрузке вашего веб-приложения. И все ваши подключенные пользователи не будут счастливы, потому что им нужно будет "повторно подключиться" к новой, возможно, потеряв желаемую информацию.
Итак, используйте собственный файл EXTERNAL для вашего AppSettings, как показано ниже:
<appSettings configSource="MyCustom_AppSettings.config"/>
Затем в файле MyCustom_AppSettings.config у вас есть свои настройки, так как в этом примере:
<appSettings>
<!-- AppSecurity Settings -->
<add key="AppStatus_Active" value="Active"/>
<!-- Application Info Settings -->
<add key="AppID" value="25"/>
<add key="AppName" value="MyCoolApp"/>
<add key="AppVersion" value="20120307_162344"/>
</appSettings>
Теперь, если вам нужно добавить, изменить или удалить AppSetting, когда вы измените его в этом файле, изменение будет почти мгновенным в вашем веб-приложении НО (и здесь BEST), ваше приложение НЕ РЕСТАРТ!
Все остается кошерным, кроме тех настроек, которые вы добавили/модифицировали/удалили во внешнем файле .config.
И да, одна вещь может быть сделана для раздела следующим образом:
<connectionStrings configSource="MyCustomApp_ConnectionStrings.config"/>
а файл MyCustomApp_ConnectionStrings.config содержит все необходимые строки подключения. Измените строку подключения во внешнем файле .config, и она начнет использоваться сразу и без перезапуска веб-приложения.
Параметры configSource великолепны, когда вам нужно развернуть их для разработки, тестирования и производства в разных блоках и нуждаться в настройках, соответствующих данному поле/среде.
Итак, теперь я знаю (что-то, что было вокруг 7+ лет).
Это просто. На самом деле.
КЦ
Ответ 3
Web.config(за исключением внешних файлов конфигурации) считывается, когда приложение загружается. Некоторые настройки конфигурации имеют каскадное поведение. Например, секция system.web/authorization может быть переопределена конфигурациями на более глубоких уровнях.
ASP.NET контролирует файл web.config для изменений. Когда он изменяется, веб-приложение принудительно перезапускается. Мораль заключается в том, что настройки web.config кэшируются в течение всего срока действия приложения.