Переопределить файл 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 уже добавлена "(мой перевод)
Ответы
Ответ 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>
.