Как файл web.config обрабатывается ConfigurationManager из .NET?

В проекте, над которым я работаю, мы обычно сохраняем настройки нашего приложения в отдельном файле. Так это делалось на протяжении многих лет, и в дальнейшем мы хотели бы хранить все конфигурации системы в одном файле. Я рассматривал возможность использования раздела web.config, чтобы я мог просто загружать нужные мне конфигурации из моего кода C#, работающего на сервере, с помощью класса ConfigurationManager.

Если бы я использовал наш собственный способ настройки приложения, я бы загрузил его в сеансе и сделал бы его доступным для приложения, загрузив значения из сеанса. После некоторого чтения в Интернете кажется, что некоторые проблемы с производительностью, связанные с использованием сеанса, заключаются в том, что мы должны десериализовать значения из объекта сеанса.

Десериализует ли IIS значения web.config каждый раз, когда мы считываем значения с помощью ConfigurationManager?

Спасибо, Виджай Селварадж.


person Vijay Selvaraj    schedule 12.04.2011    source источник


Ответы (2)


Web.config считывается один раз при загрузке AppDomain. Он обновляется, если в него или любые файлы, на которые он ссылается, вносятся какие-либо изменения (вы можете поместить разделы во внешние файлы, используя атрибут configsection= в разделе)

person DaveRead    schedule 12.04.2011

Нет, разделы конфигурации десериализуются в пользовательские классы, которые отражают их только при повторном чтении файла конфигурации (например, при повторном использовании пула приложений, обнаружении изменения в файле web.config и нескольких других условиях).

См. также этот вопрос.

person harpo    schedule 12.04.2011