Разбор настроечных файлов ASP.NET
Файлы machine.config и web.config играют различные роли в архитектуре конфигурации, но формат и доступные параметры этих файлов практически одинаковы. Эти файлы основаны на XML, поэтому существует несколько правил 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>
В начале файла machine.config находится объявление XML.
<?xml version="1.0" encoding="UTF-8" ?>
Эта строка указывает, что файл является документом, совместимым с XML 1.0, и использует кодировку UTF-8. Следующая срока является началом конфигурационных данных.
<configuration>
Она представляет открывающий тег набора тегов, который содержит все разделы настроек и параметры. В конце файла находится тег </configuration>. Все разделы и параметры располагаются между этими двумя тегами.