我正在尝试让MVC 3应用程序使用MySql数据库,但我经常出错,我在Web.Config文件中创建了以下连接字符串和提供程序
<connectionStrings>
<add name="DefaultConnection" connectionString="server=xxxxx.unoeuro.com; userid=xxxxx_dk;password=xxxxx;pooling=yes;Database=xxxxx_dk_db" providerName="MySql_db"/>
</connectionStrings>
<system.data>
<DbProviderFactories>
<add name="MySql_db" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=5.1.54.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"/>
</DbProviderFactories>
</system.data> 但是当我尝试使用它时(只是尝试使用默认项目中的默认注册用户),我就会得到这个错误。
发生错误,为system.data创建配置节处理程序:列'InvariantName‘被限制为唯一。值'MySql.Data.MySqlClient‘已经存在。
但是,如果我删除了DbProviderFactories,我只会得到一个错误,即缺少一个数据提供程序,所以这并不是因为我在任何地方复制它。
发布于 2014-01-08 21:37:03
基于@Ladislav的回答,可能会出现错误,因为Web.config中的设置与machine.config中的设置相冲突。要消除错误,请向Web.config添加一个“删除”标记,如下所示。
<system.data>
<DbProviderFactories>
<remove invariant="MySql.Data.MySqlClient"/>
<add name="MySql_db" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=5.1.54.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"/>
</DbProviderFactories>
</system.data> 发布于 2011-09-17 17:41:49
连接字符串中的提供程序名称必须设置为提供程序工厂的不变名称。此外,错误很可能是您已经在您的计算机上安装了MySql.Data.MySqlClient并在Machine.config中注册了。
https://stackoverflow.com/questions/7455678
复制相似问题