Как web.config обрабатывается ConfigurationManager из .NET? - PullRequest
1 голос
/ 12 апреля 2011

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

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

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

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

Ответы [ 2 ]

1 голос
/ 12 апреля 2011

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

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

1 голос
/ 12 апреля 2011

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

...