При использовании этих методов нужно учитывать несколько факторов. Когда вы получаете информацию с помощью метода WebConfigurationManager.OpenWebConfiguration(), то она будет отражать совокупную конфигурацию для текущего приложения. Это означает, что параметры настройки из текущего файла web.config будут объединены с параметрами, которые определены выше в конфигурационной иерархии (например, в родительском каталоге или в файле machine.config). Чтобы проверить это, вам нужно просто перебрать строки соединения с помощью кода, пример которого показан далее:
foreach (ConnectionStringSettings connection in
WebConfigurationManager.ConnectionStrings)
{
Response.Write("Name: " + connection.Name + "<br />'*);
Response.Write("Connection String: " +
connection.ConnectionString + "<br /><br />");
}
Даже если ваше приложение само не определяет ни одну из строк соединения, вы увидите строки соединения, используемые по умолчанию, которые определены для Web-сервера.
Совет. Имейте в виду, что для того чтобы успешно использовать эти методы, рабочему процессу ASP.NET понадобятся некоторые права (например, доступ на чтение для Web-каталога), Если вы намерены изменить эти параметры настройки программным образом, рабочему процессу понадобится также доступ на запись. Чтобы не допустить возникновения проблем, вы всегда должны помещать ваши вызовы конфигурации в код обработки исключений.
WebConfigurationManager предоставляет удобный доступ к двум разделам конфигурации: разделу <appSettings>, в котором вы можете определить специальные параметры настройки, и разделу <connectionStrings>, который используется для того, чтобы определить, как ваше приложение соединяется с базой данных. Вы можете получить эту информацию с помощью свойств АррSettings и ConnectionSettings.
С помощью классов конфигурации вы можете также получить информацию о любом другом разделе конфигурации. Однако вам придется сделать еще кое-что. Базовая технология предусматривает вызов метода WebConfigurationManager.OpenWebConfiguration() для получения объекта Configuration, содержащего всю информацию о конфигурации. Затем вы сможете перейти к интересующему вас разделу с помощью метода Configuration.GetSection(). Хитрость состоит в том, что метод GetSection() возвращает другой тип объекта в зависимости от типа раздела. Например, если вы извлекаете информацию из раздела <authentication>, вы получите объект AuthenticationSection, как показано ниже:
// Получение конфигурации для текущего Web-приложения.
Configuration config =
WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath);
// Поиск элемента <authentication> в элементе <system.web>.
AuthenticationSection authSection =
(AuthenticationSection)config.GetSection(@"system.web/authentication");
предыдущая следующая страница оглавление
225