Подтвердить что ты не робот

Переопределить файл machine.config по web.config

Я научился работать со встроенным поставщиком профилей .Net и иметь следующие Проблема:

Я прочитал, что параметры machine.config можно переопределить с помощью настроек web.config .Net-приложения. Следующие параметры в файле machine.config являются релевантными для меня:

<connectionStrings>
<add name="LocalSqlServer" connectionString="Data Source=(local);Initial Catalog=aspnetdb;
Integrated Security=True" providerName="System.Data.SqlClient"/>
</connectionStrings>

<profile><providers><add name="AspNetSqlProfileProvider"connectionStringName="LocalSqlServer" applicationName="/" type="System.Web.Profile.SqlProfileProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/></providers></profile>

Эти настройки работают для настройки локальных профилей. Однако, когда я копирую настройки в web.config своего приложения и изменяю machine.config, так что они больше не работают, я получаю конфигурацию ошибка. Например, я изменяю имя поставщика в machine.config на "Local". Это не должно быть проблемой, потому что настройки переопределены. Однако при запуске в приложении я получаю сообщение об ошибке:

"Запись" AspNetSQLProvider уже добавлена ​​"(мой перевод)

4b9b3361

Ответ 1

Добавьте элемент <clear /> в качестве первого дочернего элемента <connectionStrings>. Это заставит систему конфигурации игнорировать все строки подключения, добавленные в machine.config, и использовать новые. Вы также можете использовать элемент <remove> для удаления одного элемента конфигурации, если вы не хотите очищать все это.

<connectionStrings>
   <clear />
   <add name="LocalSqlServer" connectionString="Data Source=(local);Initial Catalog=aspnetdb;Integrated Security=True" providerName="System.Data.SqlClient"/> 
</connectionStrings>

Эта же идея относится и к разделам <providers>.