Какова цель configSections? - PullRequest
       31

Какова цель configSections?

4 голосов
/ 15 января 2010

Я провел небольшое исследование и наткнулся на это: http://msdn.microsoft.com/en-us/library/ms228245.aspx

Так что, если я правильно понимаю, в конечном итоге это включает в себя некоторые .dll для использования в проекте, например:

<add assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>

И я предполагаю, что разница в том, что если вы сделаете это с помощью configSections, вы можете установить некоторые параметры, создав «имя» позже в webconfig (или другом конфиге) как элемент xml. Это правильно, или я что-то упустил?

Кроме того, я заметил, что я могу удалить configSections из web.config веб-сайта, и он будет работать нормально, в частности, следующие configSections:

<configSections>
    <sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
        <sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
            <section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication"/>
            <sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
                <section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="Everywhere"/>
                <section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication"/>
                <section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication"/>
            </sectionGroup>
        </sectionGroup>
    </sectionGroup>
</configSections>

Я где-то читал, что вы можете сделать это, и он все еще будет работать, потому что configSections также был определен по умолчанию в machine.config. Так зачем определять это снова в web.config веб-сайта? Я предполагаю переопределить machine.config с некоторыми пользовательскими настройками? Можно ли как-нибудь определить, какое содержимое по умолчанию в файле machine.config?

Ответы [ 3 ]

1 голос
/ 15 января 2010

Вы правы. Разделы конфигурации ASP.NET определены в machine.config. Это иерархия, в которой каждый файл конфигурации переопределяет своего родителя. Вы можете найти файл machine.config и root web.config в следующем каталоге.

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG
0 голосов
/ 14 сентября 2010

Все приложения .NET Framework наследуют основные параметры конфигурации и значения по умолчанию из файла с именем systemroot \ Microsoft .NET \ Framework \ versionNumber \ CONFIG \ Machine.config.Файл Machine.config используется для настроек конфигурации на уровне сервера.Некоторые из этих параметров не могут быть переопределены в файлах конфигурации, которые находятся ниже в иерархии.

Клиентские приложения .NET (консоли и приложения Windows) используют файлы конфигурации с именем ApplicationName.config для переопределения унаследованных параметров.Приложения ASP.NET используют файлы конфигурации с именем Web.config для переопределения унаследованных настроек.

Корнем иерархии конфигурации ASP.NET является файл, называемый корневым файлом Web.config, и он находится втот же каталог, что и файл Machine.config.Корневой файл Web.config наследует все параметры в файле Machine.config.Корневой файл Web.config содержит параметры, которые применяются ко всем приложениям ASP.NET, которые запускают определенную версию .NET Framework.Поскольку каждое приложение ASP.NET наследует параметры конфигурации по умолчанию из корневого файла Web.config, файлы Web.config необходимо создавать только для параметров, которые переопределяют параметры по умолчанию.

см. Файл конфигурации ASP.NETИерархия и наследование

0 голосов
/ 15 января 2010

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

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

...