Переопределить machine.config с помощью web.config - PullRequest
17 голосов
/ 04 февраля 2010

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

Я прочитал, что параметры machine.config могут быть переопределены параметрами web.config-settings. .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 Ответ

34 голосов
/ 04 февраля 2010

Добавьте элемент <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> разделам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...