我已经用C#编写了一个程序集,以执行MySQL数据库的所有数据访问。我已经在C#winform桌面应用程序中成功使用了程序集(已编译的dll)。但它仅适用于已安装“ MySQL Connector Net 6.4.4”的PC。
我试图在asp.net网站项目中使用相同的程序集。首先,我收到有关缺少连接字符串的错误。通过将MySQL连接字符串添加到web.config文件中,可以轻松解决此问题。我现在收到此错误(下面列出了堆栈跟踪信息),我尝试将以下dll添加到我的bin文件夹中以解决此问题,但是它没有用。
MySql.Data.dll MySql.Data.Entity.dll MySql.Web.dll System.Web.HttpUnhandledException (0x80004005): Exception of type 'System.Web.HttpUnhandledException' was thrown. ---> System.ArgumentException: The specified store provider cannot be found in the configuration, or is not valid. ---> System.ArgumentException: Unable to find the requested .Net Framework Data Provider. It may not be installed. at System.Data.Common.DbProviderFactories.GetFactory(String providerInvariantName) at System.Data.EntityClient.EntityConnection.GetFactory(String providerString) --- End of inner exception stack trace
但它仅适用于已安装“ MySQL Connector Net 6.4.4”的PC。
这是否意味着您正在尝试在未安装提供程序的计算机上运行代码?在这种情况下,您还必须在配置文件中注册该提供程序,因为安装会将其添加到machine.config中,如果未安装,则该提供程序当前未注册。
尝试将其添加到您的web.config文件中:
<system.data> <DbProviderFactories> <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.4.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" /> </DbProviderFactories> </system.data>