В первой части описывается работа модели настроек ASP.NET и дан обзор этой модели, который поможет вам понять материал книги. Лекция 1 подробно описывает структуру и формат настроечных файлов, а также функции модели настроек, относящиеся к безопасности и обнаружению изменений. Она включает также обзор редактирования настроечного файла. В лекции 2 сделан упор на архитектуре модели настроек и на то, как настройки интерпретируются и используются в Microsoft .NET Framework.
Лекция описывает структуру и формат настроечных файлов, демонстрирует способы редактирования настроечного файла, дает обзор безопасности и обнаружения изменений модели настроек. Особенности и преимущества модели настроек ASP.NET включают следующее.
ASP.NET и .NET Framework включают очень мощную и адаптируемую модель настроек, основанную на настроечных файлах в формате XML. Эти файлы содержат большое разнообразие конфигурационных параметров, которые могут быть указаны с помощью правильного XML. Когда в одном из настроечных файлов делается изменение, при следующем доступе к файлу или приложению
Два главных типа файлов, которые вы будете использовать, называются machine.config и web.config. Файл machine.config содержит настройки для всего сервера и базовые настройки, используемые каждым machine.config расположен в директории c:\%windir%\Microsoft.Net\ Framework\version\config. Замените слово version на номер установленной у вас версии .NET Framework.
Файл 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, индивидуальном для каждого приложения.
Файлы machine.config и web.config играют различные роли в архитектуре конфигурации, но формат и доступные параметры этих файлов практически одинаковы. Эти файлы основаны на XML, поэтому существует несколько правил XML, которые можно к ним применить.
<configuration> должен иметь закрывающий </configuration> или закрываться сам <configuration />.Поскольку файлы
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" />
<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 и интерпретирует различные параметры и значения раздела настроек.
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= ... указывает имя, которое будет использоваться при объявлении раздела в настроечном файле. В нашем примере это имя httpRuntime. Запись type = ... указывает обработчик, который будет обрабатывать данный раздел и интерпретировать его значения. В нашем примере обработчиком является класс System.Web.Configuration.HttpRuntimeConfigurationHandler. Запись type = ... – это информация GAC, требуемая для нахождения правильного класса.
Внутри <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.
Как показано в разделе объявлений, различные разделы настроек могут объединяться в группы с целью группировки и логичной организации параметров. Это значительно облегчает чтение и понимание всего разнообразия разделов параметров. Ниже приведен пример такой группировки.
<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>
<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 она будет доступна, и ее не нужно заново считывать из настроечных файлов. Когда в один из используемых настроечных файлов вносится изменение, кэшированные параметры удаляются, и при следующем обращении к этому URL процесс повторяется с самого начала.
Так как приложения не должны держать эти файлы открытыми в процессе выполнения, вы можете свободно изменять их, не беспокоясь об остановке приложения. После внесения всех изменений можно просто сохранить файл, и при следующем доступе к соответствующей странице настройки будут применены – практически незаметно для пользователей, посещающих ваш сайт.
Настроечные файлы не требуют компиляции, что одновременно является как достоинством, так и недостатком. Положительно то, что можно редактировать файлы в обычном текстовом редакторе, не требуя никаких специальных приложений или компилятора. А недостаток заключается в том, что не существует промежуточного шага между модификацией файла и перекомпиляцией приложения с новой конфигурацией. Если указано неверное значение, приложение выдаст при компиляции сообщение об ошибке, или, если изменение внесено в файл machine.config, все приложения выдадут такое сообщение, что сделает приложение недоступным для пользователей, пока ошибка не будет исправлена. По этой причине хорошей идеей является тестирование изменений настроек на сервере для разработки, и только затем внесение изменений на рабочем сервере.
К файлам с расширением .config нельзя получить доступ при помощи браузера – любая попытка приведет к возникновению ошибки HTTP 403 Aсcess Denied Error (доступ запрещен). Такой же уровень безопасности используется для файлов .aspx. Очевидно, что вы не захотите делать эти файлы доступными для общественности, и такой уровень безопасности гарантирует отсутствие доступа. Поскольку посетители не смогут получить эту информацию, можно хранить в настроечных файлах строки
Давайте рассмотрим, как редактировать настроечный файл. Это довольно простая процедура. Если вы уже редактировали настроечные файлы, то можете пропустить этот раздел.
machine.config, в контекстном меню щелкните на Open With (Открыть с помощью) и в списке приложений щелкните на Notepad (Блокнот). Как показано на рис. 1.1, появится текст XML настроечного файла.
(рис 1.1) Файл machine.config, открытый в БлокнотеДанные файлы являются файлами XML, поэтому можно вносить изменения прямо в Блокноте. В нашем примере вы должны включить трассировку для всех приложений, выполняющихся на сервере. Найдите раздел настроек trace (см. рис. 1.2).
(рис 1.2) Выделено значение, которое нужно изменить для включения трассировкиВ разделе настроек trace измените значение параметра enabled = со значения false на значение true. Это приведет к включению трассировки для всех приложений при условии, что web.config данных приложений не переопределяет этот параметр. Теперь следует сохранить настроечный файл. Изменения этого файла обнаружатся, когда пользователь в следующий раз обратится к соответствующему URL – параметры будут перекомпилированы и заново помещены в кэш.
truth вместо true, все приложения выдадут сообщение об ошибке. Когда обработчик настроек сталкивается с проблемой, он генерирует ошибку конфигурации, которая отображается у пользователей. В процессе редактирования вы должны быть сверхвнимательны и, если возможно, перед внесением изменений в рабочий сервер, примените изменения на тестовом сервере или сервере разработки..config, для некоторых изменений конфигурации вы по-прежнему должны использовать инструмент администрирования Internet Information Services (IIS). При инициализации пользователем веб-запроса последний сначала обрабатывается IIS. Если это запрос ASP.NET, то он далее передается для обработки в среду выполнения ASP.NET. Из-за этого некоторые настройки клиентcкой части должны по-прежнему задаваться в IIS, чтобы обеспечить правильную маршрутизацию запросов.Для внесения следующих изменений вам потребуется инструмент администрирования IIS.
При работе с Windows Server 2003 ASP.NET обрабатывает настроечные параметры, которые заданы в IIS, а не в настроечных файлах. Как сделать соответствующие изменения, описывается в лекции 8.
В первой части описывается работа модели настроек ASP.NET и дан обзор этой модели, который поможет вам понять материал книги. Лекция 1 подробно описывает структуру и формат настроечных файлов, а также функции модели настроек, относящиеся к безопасности и обнаружению изменений. Она включает также обзор редактирования настроечного файла. В лекции 2 сделан упор на архитектуре модели настроек и на то, как настройки интерпретируются и используются в Microsoft .NET Framework.
Лекция описывает структуру и формат настроечных файлов, демонстрирует способы редактирования настроечного файла, дает обзор безопасности и обнаружения изменений модели настроек. Особенности и преимущества модели настроек ASP.NET включают следующее.
ASP.NET и .NET Framework включают очень мощную и адаптируемую модель настроек, основанную на настроечных файлах в формате XML. Эти файлы содержат большое разнообразие конфигурационных параметров, которые могут быть указаны с помощью правильного XML. Когда в одном из настроечных файлов делается изменение, при следующем доступе к файлу или приложению
Два главных типа файлов, которые вы будете использовать, называются machine.config и web.config. Файл machine.config содержит настройки для всего сервера и базовые настройки, используемые каждым machine.config расположен в директории c:\%windir%\Microsoft.Net\ Framework\version\config. Замените слово version на номер установленной у вас версии .NET Framework.
Файл 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, индивидуальном для каждого приложения.
Файлы machine.config и web.config играют различные роли в архитектуре конфигурации, но формат и доступные параметры этих файлов практически одинаковы. Эти файлы основаны на XML, поэтому существует несколько правил XML, которые можно к ним применить.
<configuration> должен иметь закрывающий </configuration> или закрываться сам <configuration />.Поскольку файлы
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" />
<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 и интерпретирует различные параметры и значения раздела настроек.
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= ... указывает имя, которое будет использоваться при объявлении раздела в настроечном файле. В нашем примере это имя httpRuntime. Запись type = ... указывает обработчик, который будет обрабатывать данный раздел и интерпретировать его значения. В нашем примере обработчиком является класс System.Web.Configuration.HttpRuntimeConfigurationHandler. Запись type = ... – это информация GAC, требуемая для нахождения правильного класса.
Внутри <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.
Как показано в разделе объявлений, различные разделы настроек могут объединяться в группы с целью группировки и логичной организации параметров. Это значительно облегчает чтение и понимание всего разнообразия разделов параметров. Ниже приведен пример такой группировки.
<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>
<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 она будет доступна, и ее не нужно заново считывать из настроечных файлов. Когда в один из используемых настроечных файлов вносится изменение, кэшированные параметры удаляются, и при следующем обращении к этому URL процесс повторяется с самого начала.
Так как приложения не должны держать эти файлы открытыми в процессе выполнения, вы можете свободно изменять их, не беспокоясь об остановке приложения. После внесения всех изменений можно просто сохранить файл, и при следующем доступе к соответствующей странице настройки будут применены – практически незаметно для пользователей, посещающих ваш сайт.
Настроечные файлы не требуют компиляции, что одновременно является как достоинством, так и недостатком. Положительно то, что можно редактировать файлы в обычном текстовом редакторе, не требуя никаких специальных приложений или компилятора. А недостаток заключается в том, что не существует промежуточного шага между модификацией файла и перекомпиляцией приложения с новой конфигурацией. Если указано неверное значение, приложение выдаст при компиляции сообщение об ошибке, или, если изменение внесено в файл machine.config, все приложения выдадут такое сообщение, что сделает приложение недоступным для пользователей, пока ошибка не будет исправлена. По этой причине хорошей идеей является тестирование изменений настроек на сервере для разработки, и только затем внесение изменений на рабочем сервере.
К файлам с расширением .config нельзя получить доступ при помощи браузера – любая попытка приведет к возникновению ошибки HTTP 403 Aсcess Denied Error (доступ запрещен). Такой же уровень безопасности используется для файлов .aspx. Очевидно, что вы не захотите делать эти файлы доступными для общественности, и такой уровень безопасности гарантирует отсутствие доступа. Поскольку посетители не смогут получить эту информацию, можно хранить в настроечных файлах строки
Давайте рассмотрим, как редактировать настроечный файл. Это довольно простая процедура. Если вы уже редактировали настроечные файлы, то можете пропустить этот раздел.
machine.config, в контекстном меню щелкните на Open With (Открыть с помощью) и в списке приложений щелкните на Notepad (Блокнот). Как показано на рис. 1.1, появится текст XML настроечного файла.
(рис 1.1) Файл machine.config, открытый в БлокнотеДанные файлы являются файлами XML, поэтому можно вносить изменения прямо в Блокноте. В нашем примере вы должны включить трассировку для всех приложений, выполняющихся на сервере. Найдите раздел настроек trace (см. рис. 1.2).
(рис 1.2) Выделено значение, которое нужно изменить для включения трассировкиВ разделе настроек trace измените значение параметра enabled = со значения false на значение true. Это приведет к включению трассировки для всех приложений при условии, что web.config данных приложений не переопределяет этот параметр. Теперь следует сохранить настроечный файл. Изменения этого файла обнаружатся, когда пользователь в следующий раз обратится к соответствующему URL – параметры будут перекомпилированы и заново помещены в кэш.
truth вместо true, все приложения выдадут сообщение об ошибке. Когда обработчик настроек сталкивается с проблемой, он генерирует ошибку конфигурации, которая отображается у пользователей. В процессе редактирования вы должны быть сверхвнимательны и, если возможно, перед внесением изменений в рабочий сервер, примените изменения на тестовом сервере или сервере разработки..config, для некоторых изменений конфигурации вы по-прежнему должны использовать инструмент администрирования Internet Information Services (IIS). При инициализации пользователем веб-запроса последний сначала обрабатывается IIS. Если это запрос ASP.NET, то он далее передается для обработки в среду выполнения ASP.NET. Из-за этого некоторые настройки клиентcкой части должны по-прежнему задаваться в IIS, чтобы обеспечить правильную маршрутизацию запросов.Для внесения следующих изменений вам потребуется инструмент администрирования IIS.
При работе с Windows Server 2003 ASP.NET обрабатывает настроечные параметры, которые заданы в IIS, а не в настроечных файлах. Как сделать соответствующие изменения, описывается в лекции 8.
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.