我学习使用.Net的内置配置文件提供程序,并具有以下功能 问题:
我读过web.config-settings可以覆盖machine.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中提供程序的名称更改为“Local”。 这应该没问题,因为覆盖了设置。但是,在跑步时 应用程序我收到错误:
“条目”已添加AspNetSQLProvider“(我的翻译)
答案 0 :(得分:34)
添加<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>
部分。