Конфигурирование и настройка Microsoft ASP.NET

Настроечные параметры ASP.NET

Разбить на страницы
Показывать лекцию целиком

Во второй части описываются все настроечные параметры ASP.NET, используемые для настройки приложений. Лекция 3 посвящена первым двум разделам настроечных файлов: разделам <configSections> и <appSettings>. Лекция 4 описывает разделы и параметры, непосредственно связанные с ASP.NET, включая разделы и параметры из группы разделов System.Web. Лекция 5 описывает разделы и параметры, относящиеся к Microsoft Mobile Internet Toolkit, лекция 6 – параметры для остальных пространств имен Microsoft .NET Framework, лекция 7 – параметры Common Language Runtime. В лекции 8 рассказывается о параметрах, используемых при работе с инструментом администрирования IIS.

Раздел настроек и параметры приложений

В лекции 1 вы уже видели раздел <configSections>, а здесь он описан более подробно. Также приведено описание раздела <appSettings>, используемого для добавления в настроечный файл дополнительных параметров и последующего доступа к этим параметрам из ваших приложений. Вы познакомитесь с разделами, параметрами и значениями для каждого раздела, узнаете, как использовать эти параметры на самых распространенных примерах. В данной лекции охвачены следующие вопросы.

  • <configSections>. Раздел содержит все объявления обработчиков разделов настроек (о них уже говорилось раньше), но теперь мы познакомимся с различными элементами, которые можно использовать в этом разделе.
  • <appSettings>. Раздел позволяет централизованно хранить различные параметры, а также используется для хранения и возврата строк пары ключ/значение. Вы узнаете, как хранить эти значения и как использовать их в приложении.
  • Работа с <configSections>

    Раздел <configSections> содержит все объявления обработчиков разделов настроек. Обработчики разделов настроек – это классы .NET, которые интерпретируют параметры и значения, содержащиеся в разделах настроек. В разделе <configSections> можно объявить новый раздел, удалить раздел и даже все объявления разделов.

    Объявление раздела

    Первым элементом в разделе <configSections> является <section>. Этот элемент используется для объявления раздела настроек, используемого далее в настроечном файле. Ниже приведен синтаксис элемента <section>.

    <section name="SectionName" type="ConfigurationHandler"
      allowLocation="true | false"
      allowDefinition="Everywhere | MachineOnly | MachineToApplication" />

    Таблица 3.1 содержит список атрибутов элемента <section>.

    Табл. 3.1. Атрибуты <section>
    Имя атрибута Значения атрибута
    Name string Имя, которое используется для ссылки на данный раздел в настроечном файле. Это любое значение, которое не конфликтует с именем другого раздела, но в большинстве случаев для имени раздела применяется соглашение об именах Паскаля.
    Type string Обработчик раздела настроек. Значение должно включать полную информацию о расположении класса в Global Assembly Cache.
    AllowLocation true | false Определяет, может ли раздел использоваться в теге location. Значение true означает, что раздел может использоваться в теге location. Значение false означает, что раздел не может использоваться в теге location.
    AllowDefinition Everywhere Позволяет разделу использоваться в любом типе настроечного файла.
    MachineOnly Позволяет разделу использоваться только в файле machine.config.
    MachineToApplication Позволяет разделу использоваться как в файле machine.config, так и в настроечном файле приложения.

    Вот пример того, как добавлять раздел в настроечный файл.

    <section name="runtime" type="System.Configuration.
      IgnoreSectionHandler, System, Version=1.0.330.0, Culture=neutral,
      PublicKeyToken=b77a5c561934e089" allowLocation="false" />

    Здесь вы видите объявление раздела с именем runtime. Имя раздела, равное значению runtime, указано с помощью атрибута name. Атрибут type указывает на обработчик раздела настроек, который будет интерпретировать раздел, – System.Configuration.IgnoreSectionHandler.

    Объявление группы разделов

    Элемент <sectionGroup> объявляет группу разделов и объявления всех включенных в него разделов. Группа разделов – это логическое объединение нескольких разделов. В настроечных файлах каждое настраиваемое пространство имен будет иметь свою собственную группу разделов. Обычно файл machine.config содержит различные группы разделов, включая System.Web и System.Net. Если вы хотите включить для своего пространства имен несколько разделов настроек, то их нужно поместить в группу разделов. Ниже приведен синтаксис для объявления группы разделов.

    <sectionGroup name="section group name" >
      <!-- Section declarations here -->
    </sectionGroup>

    В таблице 3.2 приведены значения атрибутов элемента <sectionGroup>.

    Атрибуты <sectionGroup>
    Имя атрибутаЗначения атрибута
    Name string. Имя группы разделов, обычно используется соглашение об именах Паскаля.

    Следующий пример объявляет группу разделов System.Web и включает объявление раздела <httpRuntime>.

    <sectionGroup name="System.Web">
      <section name="httpRuntime" type=
        "System.Web.Configuration.HttpRuntimeConfigurationHandler,
        System.Web, Version=1.0.3300.0, Culture=neutral,
        PublicKeyToken=b03f5f7f11d50a3a" />
    </sectionGroup>

    Далее в настроечном файле вы включите этот раздел в <sectionGroup>.

    <system.web>
      <httpRuntime executionTimeout="5000" maxRequestLength="4096"
        useFullyQualifiedRedirectUrl="false" minFreeThreads="8"
        minLocalRequestFreeThreads="4" appRequestQueueLimit="100" />
    </system.web>

    Удаление раздела

    Для удаления из вашего настроечного файла разделов или групп разделов используется элемент <remove>. Ниже приведен его синтаксис.

    <remove name="section or section group name" />

    В таблице 3.3 приведены значения атрибута элемента <remove>.

    Атрибут <remove>
    Имя атрибута Значения атрибута
    Name string. Имя раздела или группы разделов, которую нужно удалить.

    Ниже показано, как нужно удалять объявление раздела, который наследуется из предыдущего настроечного файла.

    <configSections>
      <remove name="httpRuntime" />
    </configSections>

    В примере удаляется раздел <httpRuntime> из группы <configSections>, что запретит настройку параметров httpRuntime в данном настроечном файле и всех настроечных файлах, наследуемых от него.

    Сброс всех разделов

    Для удаления всех разделов и групп разделов используйте элемент <clear>. Он удаляет все разделы, объявленные до него, и все разделы, объявленные в предыдущих настроечных файлах. Ниже приведен пример использования элемента <clear> в настроечных файлах.

    Файл machine.config

    <configuration>
      <configSections>
        <section name="httpRuntime" type=
          "System.Web.Configuration.HttpRuntimeConfigurationHandler,
          System.Web, Version=1.0.3300.0, Culture=neutral,
          PublicKeyToken=b03f5f7f11d50a3a" />
      </configSections>
    </configuration>

    Файл web.config

    <configuration>
      <configSections>
        <clear />
      </configSections>
    </configuration>

    Раздел <httpRuntime> из более раннего настроечного файла теперь не будет доступен.

    Хотя раздел <configSections> не часто используется при работе с ASP.NET, очень важно понимать его функцию в архитектуре конфигурации. В части III данный раздел рассмотрен более подробно с точки зрения создания своих собственных разделов и обработчиков разделов.

    Работа с <appSettings>

    Раздел <appSettings> позволяет хранить в настроечном файле символьные строки и получать эти значения из любого приложения. Эти строки, или значения, хранятся вместе с ключами, которые используются для получения строки в приложениях. Давайте посмотрим на различные элементы из раздела <appSettings>. В дальнейшем вы встретитесь с атрибутом file, который служит для указания файла XML, содержащего различные элементы <appSettings>.

    Добавление значения

    При наличии строки, к которой требуется доступ из разных файлов приложений, следует добавить ее в раздел <appSettings> своего настроечного файла. Если это значение должно быть доступно всем приложениям вашего сервера, его также можно добавить в файл machine.config. Для добавления значения в коллекцию <appSettings> служит элемент <add> – задайте ключ, идентифицирующий значение в вашей коллекции, и значение, которое вы хотите сохранить. Для добавления элемента <add> используйте следующий синтаксис.

    <appSettings>
      <add key="ourKey" value="ourValue" />
    </appSettings>

    Атрибуты элемента <add> перечислены в таблице 3.4.

    Атрибуты <add>
    Имя атрибута Значения атрибута
    Key string. Это уникальный ключ, который вы используете для доступа к значению в коллекции. При добавлении ключа, уже имеющегося в коллекции, его значение будет переписано.
    Value string. Это значение, которое вы будете хранить в настроечном файле.

    Данный пример демонстрирует, как добавлять в настроечный файл строку базы данных.

    <appSettings>
      <add key="ConnString" value="server=192.168.0.12;database=mydb;
        UID=myuser;Password=mypassword" />
    </appSettings>

    Здесь в коллекцию добавлена пара ключ/значение. Ключ называется ConnString, а значением пары является строка соединения с сервером. В конце этого раздела вы увидите, как получить доступ к этому значению при помощи ASP.NET.

    Пример из практики. Возможность централизованного хранения таких значений, как строка подключения к базе данных, неоценима с точки зрения правильного проектирования приложений. Если это значение соединения должно меняться – либо при переходе на другой сервер, либо при простой смене имени пользователя – вы можете изменить строку в одном месте, и она обновится везде. Вам даже не потребуется перекомпилировать приложения, так как изменения вступят в силу при следующем доступе к соответствующим ресурсам.

    Удаление значения

    Тег <remove> используется для удаления из коллекции пары ключ/значение. Вы указываете ключ пары, которую нужно удалить, и указанная пара в этой коллекции становится недоступной. Это полезно, если необходимо удалить параметр, который был добавлен в коллекцию на более высоком уровне. Например, пара ключ/значение, добавленная в файл machine.config, может быть изъята на уровне файла web.config с помощью следующей записи.

    <appSettings>
      <remove key="ourKey" />
    </appSettings>

    В таблице 3.5 показаны значения атрибута элемента <remove>.

    Атрибуты <remove>
    Имя атрибута Значения атрибута
    Key string. Ключ пары ключ/значение, которую необходимо удалить из коллекции.

    Следующий пример показывает, как удалить строку, добавленную в предыдущем разделе.

    <appSettings>
      <remove key="ConnString" />
    </appSettings>

    Данная пара ключ/значение будет недоступна этому приложению и любым другим приложениям, наследующим этот файл web.config.

    Сброс всех значений

    Элемент <clear> используется для полного сброса коллекции <appSettings>. Аналогично элементу <remove>, он служит для удаления различных пар ключ/значение, но при этом удаляет все пары. Ниже приведен пример элемента <clear>.

    <appSettings>
      <clear/>
    </appSettings>

    Добавление этого элемента в раздел <appSettings> полностью очищает его.

    Использование атрибута file

    Элемент <appSettings> включает только один атрибут – атрибут file. Атрибут file используется для указания файла XML, который содержит элементы <add>, <remove> или <clear>. Этот метод очень похож на включение на стороне сервера, поскольку включает только параметры из файла XML. Для использования атрибута filе установите его значение в теге раздела <appSettings>.

    <appSettings file="relative file path" />

    В таблице 3.6 показано значение атрибута элемента <appSettings>.

    Атрибут <appSettings>
    Имя атрибута Значения атрибута
    File string. Относительный путь к файлу <appSettings>. Он является относительным по отношению к корневой папке приложения ASP.NET. Значения по-прежнему могут быть добавлены в раздел <appSettings>, но при возникновении конфликта значения, загруженные из файла, переопределят значения, добавленные в раздел.

    Ниже приведен пример использования атрибута file.

    <appSettings file="extrasettings.xml" />

    Для использования атрибута file нужно создать файл XML, содержащий различные пары ключ/значение. Ниже приведен пример файла настроек в сочетании с атрибутом file.

    <?xml version="1.0" encoding="utf-8" ?>
      <appSettings>
      <add key="MyKey" value="MyValue" />
      <remove key="DatabasePassword" />
    </appSettings>

    Как вы можете видеть, это небольшой настроечный файл с одним единственным разделом настроек. Дочерние элементы этого раздела рассматриваются так, как если бы они были записаны в файле web.config или machine.config. Это очень эффективная методика, если требуется включить несколько значений в несколько приложений, поскольку можно создать подобный файл и сохранить его в месте, доступном для всех этих приложений.

    Чтение значений <appSettings>

    Теперь давайте рассмотрим, как читать в ASP.NET значения из раздела <appSettings>. Обработчик раздела настроек для раздела <appSettings> делает эти параметры доступными при помощи коллекции имен значений <AppSettings>. Ниже приведен код на VB.NET и C#, который осуществляет доступ к значениям.

    VB.NET

    Dim sConnString as string  ' Создаем строковое значение
    ' Читаем значение из коллекции
    sConnString = Configuration.AppSettings("connString")
    Dim oConn as SqlConnection  ' Создаем наш объект соединения
    ' Используем строку для создания соединения
    oConn = new SqlConnection(sConnString)

    C#

    // Сначала читаем значение из коллекции AppSettings
    string sConnString  = Configuration.AppSettings["connString"];
    // Затем используем это значение для создания своего соединения
    SqlConnection oConn = new SqlConnection(sConnString);

    Как вы можете видеть, получить доступ к значениям, добавленным в настроечный файл, очень просто – обратитесь к коллекции <AppSettings> и используйте имя, указанное вами в настроечном файле. Раздел <appSettings> облегчает добавление различных значений в настроечный файл. Он особенно ценен при работе со значением, используемым на различных страницах, так как не придется менять его для каждой страницы. Вместо этого вы измените его в настроечном файле – и каждая страница прочтет новое значение.

    Ключевые моменты

  • Для объявления разделов и групп разделов используется раздел <configSections>.
  • Для удаления разделов или групп разделов, объявленных в предыдущем настроечном файле, используются элементы <remove> и <clear>.
  • Для добавления в коллекцию значений, доступ к которым производится из различных файлов и приложений, используются раздел <appSettings> и элемент <add>.
  • Для удаления одного или всех значений, объявленных в предыдущих настроечных файлах, используются элементы <remove> и <clear>.
  • Страницы:

    Во второй части описываются все настроечные параметры ASP.NET, используемые для настройки приложений. Лекция 3 посвящена первым двум разделам настроечных файлов: разделам <configSections> и <appSettings>. Лекция 4 описывает разделы и параметры, непосредственно связанные с ASP.NET, включая разделы и параметры из группы разделов System.Web. Лекция 5 описывает разделы и параметры, относящиеся к Microsoft Mobile Internet Toolkit, лекция 6 – параметры для остальных пространств имен Microsoft .NET Framework, лекция 7 – параметры Common Language Runtime. В лекции 8 рассказывается о параметрах, используемых при работе с инструментом администрирования IIS.

    Раздел настроек и параметры приложений

    В лекции 1 вы уже видели раздел <configSections>, а здесь он описан более подробно. Также приведено описание раздела <appSettings>, используемого для добавления в настроечный файл дополнительных параметров и последующего доступа к этим параметрам из ваших приложений. Вы познакомитесь с разделами, параметрами и значениями для каждого раздела, узнаете, как использовать эти параметры на самых распространенных примерах. В данной лекции охвачены следующие вопросы.

  • <configSections>. Раздел содержит все объявления обработчиков разделов настроек (о них уже говорилось раньше), но теперь мы познакомимся с различными элементами, которые можно использовать в этом разделе.
  • <appSettings>. Раздел позволяет централизованно хранить различные параметры, а также используется для хранения и возврата строк пары ключ/значение. Вы узнаете, как хранить эти значения и как использовать их в приложении.
  • Работа с <configSections>

    Раздел <configSections> содержит все объявления обработчиков разделов настроек. Обработчики разделов настроек – это классы .NET, которые интерпретируют параметры и значения, содержащиеся в разделах настроек. В разделе <configSections> можно объявить новый раздел, удалить раздел и даже все объявления разделов.

    Объявление раздела

    Первым элементом в разделе <configSections> является <section>. Этот элемент используется для объявления раздела настроек, используемого далее в настроечном файле. Ниже приведен синтаксис элемента <section>.

    <section name="SectionName" type="ConfigurationHandler"
      allowLocation="true | false"
      allowDefinition="Everywhere | MachineOnly | MachineToApplication" />

    Таблица 3.1 содержит список атрибутов элемента <section>.

    Табл. 3.1. Атрибуты <section>
    Имя атрибута Значения атрибута
    Name string Имя, которое используется для ссылки на данный раздел в настроечном файле. Это любое значение, которое не конфликтует с именем другого раздела, но в большинстве случаев для имени раздела применяется соглашение об именах Паскаля.
    Type string Обработчик раздела настроек. Значение должно включать полную информацию о расположении класса в Global Assembly Cache.
    AllowLocation true | false Определяет, может ли раздел использоваться в теге location. Значение true означает, что раздел может использоваться в теге location. Значение false означает, что раздел не может использоваться в теге location.
    AllowDefinition Everywhere Позволяет разделу использоваться в любом типе настроечного файла.
    MachineOnly Позволяет разделу использоваться только в файле machine.config.
    MachineToApplication Позволяет разделу использоваться как в файле machine.config, так и в настроечном файле приложения.

    Вот пример того, как добавлять раздел в настроечный файл.

    <section name="runtime" type="System.Configuration.
      IgnoreSectionHandler, System, Version=1.0.330.0, Culture=neutral,
      PublicKeyToken=b77a5c561934e089" allowLocation="false" />

    Здесь вы видите объявление раздела с именем runtime. Имя раздела, равное значению runtime, указано с помощью атрибута name. Атрибут type указывает на обработчик раздела настроек, который будет интерпретировать раздел, – System.Configuration.IgnoreSectionHandler.

    Объявление группы разделов

    Элемент <sectionGroup> объявляет группу разделов и объявления всех включенных в него разделов. Группа разделов – это логическое объединение нескольких разделов. В настроечных файлах каждое настраиваемое пространство имен будет иметь свою собственную группу разделов. Обычно файл machine.config содержит различные группы разделов, включая System.Web и System.Net. Если вы хотите включить для своего пространства имен несколько разделов настроек, то их нужно поместить в группу разделов. Ниже приведен синтаксис для объявления группы разделов.

    <sectionGroup name="section group name" >
      <!-- Section declarations here -->
    </sectionGroup>

    В таблице 3.2 приведены значения атрибутов элемента <sectionGroup>.

    Атрибуты <sectionGroup>
    Имя атрибутаЗначения атрибута
    Name string. Имя группы разделов, обычно используется соглашение об именах Паскаля.

    Следующий пример объявляет группу разделов System.Web и включает объявление раздела <httpRuntime>.

    <sectionGroup name="System.Web">
      <section name="httpRuntime" type=
        "System.Web.Configuration.HttpRuntimeConfigurationHandler,
        System.Web, Version=1.0.3300.0, Culture=neutral,
        PublicKeyToken=b03f5f7f11d50a3a" />
    </sectionGroup>

    Далее в настроечном файле вы включите этот раздел в <sectionGroup>.

    <system.web>
      <httpRuntime executionTimeout="5000" maxRequestLength="4096"
        useFullyQualifiedRedirectUrl="false" minFreeThreads="8"
        minLocalRequestFreeThreads="4" appRequestQueueLimit="100" />
    </system.web>

    Удаление раздела

    Для удаления из вашего настроечного файла разделов или групп разделов используется элемент <remove>. Ниже приведен его синтаксис.

    <remove name="section or section group name" />

    В таблице 3.3 приведены значения атрибута элемента <remove>.

    Атрибут <remove>
    Имя атрибута Значения атрибута
    Name string. Имя раздела или группы разделов, которую нужно удалить.

    Ниже показано, как нужно удалять объявление раздела, который наследуется из предыдущего настроечного файла.

    <configSections>
      <remove name="httpRuntime" />
    </configSections>

    В примере удаляется раздел <httpRuntime> из группы <configSections>, что запретит настройку параметров httpRuntime в данном настроечном файле и всех настроечных файлах, наследуемых от него.

    Сброс всех разделов

    Для удаления всех разделов и групп разделов используйте элемент <clear>. Он удаляет все разделы, объявленные до него, и все разделы, объявленные в предыдущих настроечных файлах. Ниже приведен пример использования элемента <clear> в настроечных файлах.

    Файл machine.config

    <configuration>
      <configSections>
        <section name="httpRuntime" type=
          "System.Web.Configuration.HttpRuntimeConfigurationHandler,
          System.Web, Version=1.0.3300.0, Culture=neutral,
          PublicKeyToken=b03f5f7f11d50a3a" />
      </configSections>
    </configuration>

    Файл web.config

    <configuration>
      <configSections>
        <clear />
      </configSections>
    </configuration>

    Раздел <httpRuntime> из более раннего настроечного файла теперь не будет доступен.

    Хотя раздел <configSections> не часто используется при работе с ASP.NET, очень важно понимать его функцию в архитектуре конфигурации. В части III данный раздел рассмотрен более подробно с точки зрения создания своих собственных разделов и обработчиков разделов.

    Работа с <appSettings>

    Раздел <appSettings> позволяет хранить в настроечном файле символьные строки и получать эти значения из любого приложения. Эти строки, или значения, хранятся вместе с ключами, которые используются для получения строки в приложениях. Давайте посмотрим на различные элементы из раздела <appSettings>. В дальнейшем вы встретитесь с атрибутом file, который служит для указания файла XML, содержащего различные элементы <appSettings>.

    Добавление значения

    При наличии строки, к которой требуется доступ из разных файлов приложений, следует добавить ее в раздел <appSettings> своего настроечного файла. Если это значение должно быть доступно всем приложениям вашего сервера, его также можно добавить в файл machine.config. Для добавления значения в коллекцию <appSettings> служит элемент <add> – задайте ключ, идентифицирующий значение в вашей коллекции, и значение, которое вы хотите сохранить. Для добавления элемента <add> используйте следующий синтаксис.

    <appSettings>
      <add key="ourKey" value="ourValue" />
    </appSettings>

    Атрибуты элемента <add> перечислены в таблице 3.4.

    Атрибуты <add>
    Имя атрибута Значения атрибута
    Key string. Это уникальный ключ, который вы используете для доступа к значению в коллекции. При добавлении ключа, уже имеющегося в коллекции, его значение будет переписано.
    Value string. Это значение, которое вы будете хранить в настроечном файле.

    Данный пример демонстрирует, как добавлять в настроечный файл строку базы данных.

    <appSettings>
      <add key="ConnString" value="server=192.168.0.12;database=mydb;
        UID=myuser;Password=mypassword" />
    </appSettings>

    Здесь в коллекцию добавлена пара ключ/значение. Ключ называется ConnString, а значением пары является строка соединения с сервером. В конце этого раздела вы увидите, как получить доступ к этому значению при помощи ASP.NET.

    Пример из практики. Возможность централизованного хранения таких значений, как строка подключения к базе данных, неоценима с точки зрения правильного проектирования приложений. Если это значение соединения должно меняться – либо при переходе на другой сервер, либо при простой смене имени пользователя – вы можете изменить строку в одном месте, и она обновится везде. Вам даже не потребуется перекомпилировать приложения, так как изменения вступят в силу при следующем доступе к соответствующим ресурсам.

    Удаление значения

    Тег <remove> используется для удаления из коллекции пары ключ/значение. Вы указываете ключ пары, которую нужно удалить, и указанная пара в этой коллекции становится недоступной. Это полезно, если необходимо удалить параметр, который был добавлен в коллекцию на более высоком уровне. Например, пара ключ/значение, добавленная в файл machine.config, может быть изъята на уровне файла web.config с помощью следующей записи.

    <appSettings>
      <remove key="ourKey" />
    </appSettings>

    В таблице 3.5 показаны значения атрибута элемента <remove>.

    Атрибуты <remove>
    Имя атрибута Значения атрибута
    Key string. Ключ пары ключ/значение, которую необходимо удалить из коллекции.

    Следующий пример показывает, как удалить строку, добавленную в предыдущем разделе.

    <appSettings>
      <remove key="ConnString" />
    </appSettings>

    Данная пара ключ/значение будет недоступна этому приложению и любым другим приложениям, наследующим этот файл web.config.

    Сброс всех значений

    Элемент <clear> используется для полного сброса коллекции <appSettings>. Аналогично элементу <remove>, он служит для удаления различных пар ключ/значение, но при этом удаляет все пары. Ниже приведен пример элемента <clear>.

    <appSettings>
      <clear/>
    </appSettings>

    Добавление этого элемента в раздел <appSettings> полностью очищает его.

    Использование атрибута file

    Элемент <appSettings> включает только один атрибут – атрибут file. Атрибут file используется для указания файла XML, который содержит элементы <add>, <remove> или <clear>. Этот метод очень похож на включение на стороне сервера, поскольку включает только параметры из файла XML. Для использования атрибута filе установите его значение в теге раздела <appSettings>.

    <appSettings file="relative file path" />

    В таблице 3.6 показано значение атрибута элемента <appSettings>.

    Атрибут <appSettings>
    Имя атрибута Значения атрибута
    File string. Относительный путь к файлу <appSettings>. Он является относительным по отношению к корневой папке приложения ASP.NET. Значения по-прежнему могут быть добавлены в раздел <appSettings>, но при возникновении конфликта значения, загруженные из файла, переопределят значения, добавленные в раздел.

    Ниже приведен пример использования атрибута file.

    <appSettings file="extrasettings.xml" />

    Для использования атрибута file нужно создать файл XML, содержащий различные пары ключ/значение. Ниже приведен пример файла настроек в сочетании с атрибутом file.

    <?xml version="1.0" encoding="utf-8" ?>
      <appSettings>
      <add key="MyKey" value="MyValue" />
      <remove key="DatabasePassword" />
    </appSettings>

    Как вы можете видеть, это небольшой настроечный файл с одним единственным разделом настроек. Дочерние элементы этого раздела рассматриваются так, как если бы они были записаны в файле web.config или machine.config. Это очень эффективная методика, если требуется включить несколько значений в несколько приложений, поскольку можно создать подобный файл и сохранить его в месте, доступном для всех этих приложений.

    Чтение значений <appSettings>

    Теперь давайте рассмотрим, как читать в ASP.NET значения из раздела <appSettings>. Обработчик раздела настроек для раздела <appSettings> делает эти параметры доступными при помощи коллекции имен значений <AppSettings>. Ниже приведен код на VB.NET и C#, который осуществляет доступ к значениям.

    VB.NET

    Dim sConnString as string  ' Создаем строковое значение
    ' Читаем значение из коллекции
    sConnString = Configuration.AppSettings("connString")
    Dim oConn as SqlConnection  ' Создаем наш объект соединения
    ' Используем строку для создания соединения
    oConn = new SqlConnection(sConnString)

    C#

    // Сначала читаем значение из коллекции AppSettings
    string sConnString  = Configuration.AppSettings["connString"];
    // Затем используем это значение для создания своего соединения
    SqlConnection oConn = new SqlConnection(sConnString);

    Как вы можете видеть, получить доступ к значениям, добавленным в настроечный файл, очень просто – обратитесь к коллекции <AppSettings> и используйте имя, указанное вами в настроечном файле. Раздел <appSettings> облегчает добавление различных значений в настроечный файл. Он особенно ценен при работе со значением, используемым на различных страницах, так как не придется менять его для каждой страницы. Вместо этого вы измените его в настроечном файле – и каждая страница прочтет новое значение.

    Ключевые моменты

  • Для объявления разделов и групп разделов используется раздел <configSections>.
  • Для удаления разделов или групп разделов, объявленных в предыдущем настроечном файле, используются элементы <remove> и <clear>.
  • Для добавления в коллекцию значений, доступ к которым производится из различных файлов и приложений, используются раздел <appSettings> и элемент <add>.
  • Для удаления одного или всех значений, объявленных в предыдущих настроечных файлах, используются элементы <remove> и <clear>.
  • Вернуться к учебному плану