Ошибка дублирования раздела даже после использования тега <remove> в web.config для IIS
У меня есть сайт, работающий в подкаталоге другого сайта. Они запускаются в отдельных пулах приложений. На двух сайтах работают разные версии Entity Framework. Поэтому в файле web.config в подкаталоге есть:
<remove name="entityFramework"/>
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=4.4.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
Но даже с тегом <remove>
я все равно получаю эту ошибку:
Section or group name 'entityFramework' is already defined. Updates to this may only occur at the configuration level where it is defined.
Я также разместил теги <location>
в родительском web.config, где это возможно:
<location path="." inheritInChildApplications="false">
Тег <location>
присутствует вокруг родительского раздела web.config <entityFramework>
.
И я поместил enableConfigurationOverride="false"
в файлы applicationHost.config для IIS (оба файла в System32 и SysWOW64).
Как запретить сайту в подкаталоге видеть родительский тег entityFramework
?
ИЗМЕНИТЬ
Версия IIS: 7.5.7600.16385
Из родительского web.config:
<configSections>
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections>
л
<location path="." inheritInChildApplications="false">
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
<parameters>
<parameter value="mssqllocaldb" />
</parameters>
</defaultConnectionFactory>
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>
</entityFramework>
</location>
Из дочернего web.config:
<configSections>
<remove name="entityFramework"/>
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=4.4.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
<section name="enterpriseLibrary.ConfigurationSource" type="Microsoft.Practices.EnterpriseLibrary.Common.Configuration.ConfigurationSourceSection, Microsoft.Practices.EnterpriseLibrary.Common, Version=5.0.505.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="true" />
</configSections>
л
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
</entityFramework>
ИЗМЕНИТЬ 2
Что касается использования <clear/>
: это вызывает серию ошибок в описаниях отсутствующих разделов. Если я добавлю обратно ~ 100 строк объявлений раздела, я получу ошибку: An ASP.NET setting has been detected that does not apply in Integrated managed pipeline mode.
Ошибка сохраняется, даже если я использую <validation validateIntegratedModeConfiguration="false" />
в <system.webServer>
.
Ответы
Ответ 1
Можете ли вы подтвердить, что вы пробовали clear
вместо remove
, проблема все еще сохраняется или нет?
<configSections>
<clear/>
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=4.4.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
<section name="enterpriseLibrary.ConfigurationSource" type="Microsoft.Practices.EnterpriseLibrary.Common.Configuration.ConfigurationSourceSection, Microsoft.Practices.EnterpriseLibrary.Common, Version=5.0.505.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="true" />
</configSections>
Вы можете прочитать здесь
Надеюсь, это поможет вам
Ответ 2
Вы сказали, что используете, но в родительском web.config, который вы разместили, путь = "." пропал, отсутствует. Вам понадобится, чтобы блокировать наследование.
Ответ 3
Вы пробовали этот Removeattributes
<system.web>
<compilation xdt:Transform="RemoveAttributes(debug)" />
</system.web>
http://weblogs.asp.net/srkirkland/common-web-config-transformations-with-visual-studio-2010
Пример 2