Переопределить 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 на "Локальный". Это не должно быть проблемой, потому что настройки переопределены. Однако при запуске приложения я получаю сообщение об ошибке:
"Запись"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>
разделы также.