Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

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

Покупка
Артикул: 826679.01.99
Доступ онлайн
1 000 ₽
В корзину
Курс посвящен вопросам архитектуры конфигурирования ASP.NET, параметрам и настройкам, возникающим у разработчиков веб-приложений. В курсе рассматриваются следующие темы: наследование настроечных файлов ASP.NET; настройка приложений при помощи изменения настроечных параметров; настройка пространства имен System.Web - с описанием всех разделов, параметров и значений; использование настроечных параметров .NET для диагностики системы, .NET Remoting, параметры прокси и JIT-компиляция; тонкая настройка мобильных элементов управления ASP.NET, предназначенных для работы с мобильными устройствами; настройка параметров CLR, включая сборщик мусора и криптографию; использование параметров Microsoft IIS для управления пулами приложений и реализации аутентификации Windows; создание и использование собственных разделов и обработчиков разделов.
Конфигурирование и настройка Microsoft ASP.NET : краткий учебный курс / . - Москва : ИНТУИТ, 2016. - 173 с. - Текст : электронный. - URL: https://znanium.ru/catalog/product/2140202 (дата обращения: 21.11.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов

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

2-е издание, исправленное

Национальный Открытый Университет “ИНТУИТ”
2016

2

Конфигурирование и настройка Microsoft ASP.NET/ - М.: Национальный Открытый Университет
“ИНТУИТ”, 2016

Курс посвящен вопросам архитектуры конфигурирования ASP.NET, параметрам и настройкам,
возникающим у разработчиков веб-приложений.
В курсе рассматриваются следующие темы: наследование настроечных файлов ASP.NET; настройка
приложений при помощи изменения настроечных параметров; настройка пространства имен
System.Web - с описанием всех разделов, параметров и значений; использование настроечных
параметров .NET для диагностики системы, .NET Remoting, параметры прокси и JIT-компиляция;
тонкая настройка мобильных элементов управления ASP.NET, предназначенных для работы с
мобильными устройствами; настройка параметров CLR, включая сборщик мусора и криптографию;
использование параметров Microsoft IIS для управления пулами приложений и реализации
аутентификации Windows; создание и использование собственных разделов и обработчиков разделов.

(c) ООО “ИНТУИТ.РУ”, 2007-2016
(c) 2007-2016

3

Обзор настройки Microsoft ASP.NET

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

В первой части описывается работа модели настроек ASP.NET и дан обзор этой
модели, который поможет вам понять материал книги. Лекция 1 подробно описывает
структуру и формат настроечных файлов, а также функции модели настроек,
относящиеся к безопасности и обнаружению изменений. Она включает также обзор
редактирования настроечного файла. В лекции 2 сделан упор на архитектуре модели
настроек и на то, как настройки интерпретируются и используются в Microsoft .NET
Framework.

Введение в настройку Microsoft ASP.NET

Лекция описывает структуру и формат настроечных файлов, демонстрирует способы
редактирования настроечного файла, дает обзор безопасности и обнаружения
изменений модели настроек. Особенности и преимущества модели настроек ASP.NET
включают следующее.

Параметры конфигурации хранятся в файлах XML с расширением .config. Это
позволяет редактировать файлы в любом текстовом редакторе.
Настроечные файлы кэшируются в Microsoft .NET Framework и не блокируются,
что позволяет вносить изменения в действующие настроечные файлы при
минимальном влиянии на пользователей.
Настройки могут быть созданы в нескольких настроечных файлах и
распространены от сервера к приложению и от родительского приложения к
дочернему приложению. Это позволяет задавать параметры для сервера,
приложения, директории или даже одного файла.
Пользовательские разделы и параметры позволяют указать ваши собственные
настройки, сохраняемые в настроечных файлах, доступ к которым имеют ваши
приложения.
Настроечные файлы защищены, и доступ к ним через запросы HTTP
осуществляться не может.

Обзор конфигурации ASP.NET

ASP.NET и .NET Framework включают очень мощную и адаптируемую модель
настроек, основанную на настроечных файлах в формате XML. Эти файлы содержат
большое разнообразие конфигурационных параметров, которые могут быть указаны с
помощью правильного XML. Когда в одном из настроечных файлов делается
изменение, при следующем доступе к файлу или приложению конфигурационные
параметры перекомпилируются и повторно кэшируются. После компиляции
настроечные файлы кэшируются, при этом не производится их блокировка, так что вы
можете и дальше изменять эти файлы. Так как файлы имеют формат XML, для их

4

редактирования подойдет любой текстовый редактор.

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

machine.config и web.config. Файл machine.config содержит настройки для всего
сервера и базовые настройки, используемые каждым веб-приложением. Файл

machine.config расположен в директории c:\%windir%\Microsoft.Net\
Framework\version\config. Замените слово version на номер установленной у вас версии
.NET Framework.

Замечание. %windir% является директорией установки Windows; это может быть

c:\winnt, c:\windows или еще какая-либо.

Файл web.config содержит параметры, специфичные для приложения и всех дочерних
приложений или директорий. Файл web.config для веб-приложения хранится в
корневой директории этого приложения.

Параметры в файле приложения web.config могут переопределять параметры,
содержащиеся в файле machine.config. Параметры конкретного файла web.config
можно снова переопределить в дополнительном файле web.config дочернего
приложения этого приложения. Например, если в файле machine.config сервера
отключена трассировка, то это будет параметром по умолчанию для всех приложений
ASP.NET, выполняющихся на этом сервере. Если вы включите трассировку в файле

web.config для веб-приложения ASP.NET App1, то для App1 трассировка будет
включена, а для всех остальных приложений она останется выключенной, так как
параметр в файле web.config имеет приоритет над параметрами файла machine.config.
Если добавляется дочернее приложение App1, то для этого дочернего приложения
трассировка также будет включена, поскольку приложение сначала наследует
параметры из файла machine.config, а затем – из файла web.config для App1.

Более подробно данный процесс описан в лекции 2, но сейчас нужно запомнить, что
параметры уровня сервера хранятся в файле machine.config и могут быть
переопределены параметрами уровня приложения, которые хранятся в файле

web.config, индивидуальном для каждого приложения.

Разбор настроечных файлов ASP.NET

Файлы machine.config и web.config играют различные роли в архитектуре
конфигурации, но формат и доступные параметры этих файлов практически
одинаковы. Эти файлы основаны на XML, поэтому существует несколько правил XML,
которые можно к ним применить.

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

<configuration> должен иметь закрывающий </configuration> или закрываться
сам <configuration />.

5

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

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

“Верблюжья” нотация. Каждое слово состоит из строчных букв, за исключением
первых букв добавленных слов. Например, appSettings, maxRequestLength,

userName.
Нотация в стиле Паскаля. Каждое слово начинается с заглавной буквы, включая
первое и все добавленные слова, например PublicKeyToken, RemoteOnly,

AutoGenerate.

Ниже приведен фрагмент файла machine.config, показывающий различные разделы и
общую структуру.

<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
<configSections>
  <sectionGroup name="system.web">
    <section name="httpRuntime" type
      ="System.Web.Configuration.HttpRuntimeConfigurationHandler,
      System.Web, Version=1.0.3300.0, Culture=neutral,
      PublicKeyToken=b03f5f7f11d50a3a" />
    <section name="compilation" type=
      "System.Web.Configuration.CompilationConfigurationHandler,
      System.Web, Version=1.0.3300.0, Culture=neutral,
      PublicKeyToken=b03f5f7f11d50a3a" />
  </sectionGroup>
</configSections>
<system.web>
  <httpRuntime executionTimeout="5000" maxRequestLength="4096"
    useFullyQualifiedRedirectUrl="false" minFreeThreads="8"
    minLocalRequestFreeThreads="4" appRequestQueueLimit="100" />
  <compilation debug="false" explicit="true" defaultLanguage="vb"
    strict="false" batch="true" batchTimeout="15"
    maxBatchSize="1000" maxBatchGeneratedFileSize="3000"
    numRecompilesBeforeAppRestart="15">
    <compilers>
      <compiler language="c#;cs;csharp" extension=".cs"
        type="Microsoft.CSharp.CSharpCodeProvider, System,
        Version=1.0.3300.0, Culture=neutral,
        PublicKeyToken=b77a5c561934e089" warningLevel="1" />
      <compiler language="vb;vbs;visualbasic;vbscript" extension=
        ".vb" type="Microsoft.VisualBasic.VBCodeProvider,
        System, Version=1.0.3300.0, Culture=neutral,
        PublicKeyToken=b77a5c561934e089" />

6

      <compiler language="js;jscript;javascript" extension=".js"
        type="Microsoft.JScript.JScriptCodeProvider,
        Microsoft.JScript, Version=7.0.3300.0, Culture=neutral,
        PublicKeyToken=b03f5f7f11d50a3a" />
    </compilers>
  </compilation>
</system.web>
</configuration>

В начале файла machine.config находится объявление XML.

<?xml version="1.0" encoding="UTF-8" ?>

Эта строка указывает, что файл является документом, совместимым с XML 1.0, и
использует кодировку UTF-8. Следующая срока является началом конфигурационных
данных.

<configuration>

Она представляет открывающий тег набора тегов, который содержит все разделы
настроек и параметры. В конце файла находится тег </configuration>. Все разделы и
параметры располагаются между этими двумя тегами.

Объявление обработчика раздела конфигурации

Первым в настроечных файлах идет раздел <configSections>. Он содержит объявления
обработчиков разделов настроек для последующих разделов настроек. Каждый раздел
настроек связан с обработчиком, который будет обрабатывать параметры этого
раздела. Каждое объявление связывает свой раздел настроек с обработчиком, который
будет обрабатывать параметры этого раздела. Обработчик конфигурации – это класс,
который реализует интерфейс IConfigurationSectionHandler и интерпретирует
различные параметры и значения раздела настроек.

Дополнительная информация. Интерфейс – это вид шаблона .NET. Он включает

методы, которые должен содержать реализующий его класс. В этом примере класс,
реализующий IConfigurationSectionHandler, должен содержать метод Create().

Давайте более внимательно посмотрим на одно из этих объявлений.

<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
  <section name="httpRuntime" type=
    "System.Web.Configuration.HttpRuntimeConfigurationHandler,
    System.Web, Version=1.0.3300.0, Culture=neutral,
    PublicKeyToken=b03f5f7f11d50a3a" />

Запись name= ... указывает имя, которое будет использоваться при объявлении раздела

7

в настроечном файле. В нашем примере это имя httpRuntime. Запись type = ...
указывает обработчик, который будет обрабатывать данный раздел и интерпретировать
его значения. В нашем примере обработчиком является класс

System.Web.Configuration.HttpRuntimeConfigurationHandler. Запись type = ... – это
информация GAC, требуемая для нахождения правильного класса.

Дополнительная информация. GAC, или Global Assembly Cache (глобальный кэш

сборок) – это метод, используемый .NET Framework для хранения ссылок на различные
сборки .NET, которые должны быть доступны нескольким приложениям.

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

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

<system.web>
  <httpRuntime executionTimeout="5000" maxRequestLength="4096"
    useFullyQualifiedRedirectUrl="false" minFreeThreads="8"
    minLocalRequestFreeThreads="4" appRequestQueueLimit="100" />
  <compilation debug="false" explicit="true" defaultLanguage="vb"
    strict="false" batch="true" batchTimeout="15"
    maxBatchSize="1000" maxBatchGeneratedFileSize="3000"
    numRecompilesBeforeAppRestart="15">
  </compilation>
</system.web>

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

Это означает, что разделы httpRuntime и compilation должны располагаться в группе
разделов system.web. Обработчики объявлений подробно описаны в лекции 2, а
создание собственных обработчиков – в лекции 9.

Группы разделов

Как показано в разделе объявлений, различные разделы настроек могут объединяться в

8

группы с целью группировки и логичной организации параметров. Это значительно
облегчает чтение и понимание всего разнообразия разделов параметров. Ниже
приведен пример такой группировки.

<system.web>
<httpRuntime executionTimeout="5000" maxRequestLength="4096" 
useFullyQualifiedRedirectUrl="false" minFreeThreads="8" 
minLocalRequestFreeThreads="4" appRequestQueueLimit="100" />
<compilation debug="false" explicit="true" defaultLanguage="vb" 
strict="false" batch="true" batchTimeout="15" maxBatchSize="1000"
maxBatchGeneratedFileSize="3000" numRecompilesBeforeAppRestart="15">
</compilation>
</system.web>

Различные разделы объединены внутри тегов, представляющих объявление имени
группы разделов. В нашем примере разделы httpRuntime и compilation объединены в
группу разделов system.web.

Разделы настроек

Разделы настроек – это основа настроечных файлов; в них задаются все настроечные
параметры. Эти разделы используют имя, объявленное при объявлении обработчика
раздела, и могут содержать несколько настроек, значений и подразделов. Вот раздел
настроек из примера файла machine.config.

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

Этот раздел объединяет несколько различных параметров, таких как executionTimeout
и maxRequestLength, связанных со средой выполнения HTTP. Данные параметры
обрабатываются одним и тем же обработчиком настроек, указанным в области
объявлений обработчиков. Имя раздела всегда представлено в “верблюжьей” нотации.

Подразделы

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

compilation содержит несколько различных подразделов.

<compilation debug="false" explicit="true" defaultLanguage="vb"
    strict="false" batch="true" batchTimeout="15"
    maxBatchSize="1000" maxBatchGeneratedFileSize="3000"
    numRecompilesBeforeAppRestart="15">
    <compilers>

9

      <compiler language="c#;cs;csharp" extension=".cs"
        type="Microsoft.CSharp.CSharpCodeProvider, System,
        Version=1.0.3300.0, Culture=neutral,
        PublicKeyToken=b77a5c561934e089" warningLevel="1" />
      <compiler language="vb;vbs;visualbasic;vbscript" extension=
        ".vb" type="Microsoft.VisualBasic.VBCodeProvider,
        System, Version=1.0.3300.0, Culture=neutral,
        PublicKeyToken=b77a5c561934e089" />
      <compiler language="js;jscript;javascript" extension=".js"
        type="Microsoft.JScript.JScriptCodeProvider,
        Microsoft.JScript, Version=7.0.3300.0, Culture=neutral,
        PublicKeyToken=b03f5f7f11d50a3a" />
    </compilers>
  </compilation>

  <compilation debug="false" />

Именем раздела является compilation, он содержит подраздел compilers с
несколькими подразделами compiler. Раздел может содержать неограниченное
количество подразделов. Имена подразделов должны следовать “верблюжьей”
нотации.

Параметры

Параметры конфигурации находятся либо в разделах, либо в подразделах и включают
имя параметра, за которым следует знак равенства и значение, заключенное в кавычки,
например:

<compilation debug="false" />

Имя раздела настроек – compilation, имя параметра – debug, а значение этого
параметра устанавливается в логическое значение False (ложь).

Имена параметров почти всегда следуют “верблюжьей нотации”. Значения обычно
используют соглашение об именах Паскаля, но имеется пара исключений. Слова true
(истина) и false (ложь) всегда пишутся строчными буквами. Значение параметра также
может быть символьной строкой, такой как строка подключения к базе данных, и в этом
случае оно не следует никакому стандарту на использование регистра.

Применение изменений в настроечных файлах

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

10

Доступ онлайн
1 000 ₽
В корзину