gpt4 book ai didi

c# - 在 MVC3 中使用 ADO.NET MySQL Provider(无法找到请求的 .Net Framework Data Provider。它可能未安装。)

转载 作者:行者123 更新时间:2023-11-29 02:33:13 34 4
gpt4 key购买 nike

我试图连接到我的网络服务器上的 mysql 数据库,但我不断收到:

Unable to find the requested .Net Framework Data Provider.  It may not be installed.

我猜测 ADO.NET 连接器存在,因为如果我将配置更改为:

providerName="System.Data.SQLClient"

我得到:

A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)

我的供应商配置是:

    <add name="MySQLMembershipProvider" type="MySql.Web.Security.MySQLMembershipProvider, MySql.Web, Version=6.0.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" connectionStringName="LocalMySqlServer"
enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false"
autogenerateschema="true" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10"
applicationName="/" />
</providers>

我的连接字符串是:

<add name="LocalMySqlServer"
connectionString="Data Source=localhost;user id=web210-aaron;password=tester;database=web210-aaron;"
providerName="System.Data.MySQLClient"/>

我很确定这是正确的,尤其是当我从我的本地机器上运行它时(将主机更改为服务器 IP),它运行得非常完美!有人可以确认这是一个正确的连接字符串。

最佳答案

我要回答我自己的问题,因为这浪费了我 3 天的时间来尝试手动配置。

情况

  • 您已经创建了一个 MVC3/razor(可能是其他 c#)应用程序
  • 您正在使用 MySql.Data.MySqlClient 尝试连接到您的数据库
  • 您可以从本地计算机从 VS2010 等 IDE 连接到本地数据库或服务器上的数据库,但在部署站点时无法连接
  • 当您部署您的网站时,您收到此错误:无法找到请求的 .Net Framework 数据提供程序。它可能没有安装。
    当试图引用 MySql 数据库时

问题是您的站点找不到对 MySQL.Data 的引用。


解决方案

web.config 文件中有几个部分需要更改,例如 dbproviderfactories 和创建命名空间。这些可以手动添加,但让工具为您完成要简单得多。

您需要将相关的 dll 包含在您的 bin 文件夹中,或者更好的是,使用 Visual Studio SP1 通过右键单击项目 (there is an option there to create a bin folder containing all of your dlls) 创建相关的文件夹和引用。确保 MySql.Data.MySqlClient 包含在此文件夹中,如果不是,您应该能够将它从 bin 文件夹拖到 VS 创建的新文件夹中。

然后您可以使用 nuGet package manager consoleinstall BLToolKit .这将下载任何丢失的 dll,将它们插入您的文件夹并自动正确引用它们。这样,您可以将 MVC 应用程序部署到可能未安装 MySql.Data(或与此相关的任何其他 dll)的 Web 服务器。

关于c# - 在 MVC3 中使用 ADO.NET MySQL Provider(无法找到请求的 .Net Framework Data Provider。它可能未安装。),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9504958/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com