【问题标题】:Unable to find the requested .Net Framework Data Provider - 6.5.5.0 MySQL files + GoDaddy找不到请求的 .Net Framework 数据提供程序 - 6.5.5.0 MySQL 文件 + GoDaddy
【发布时间】:2013-08-04 07:28:38
【问题描述】:

我知道这个问题已被多次回答,但似乎没有一个答案能解决我的问题。

这里有一些关于我的申请的细节,

  • GoDaddy 中的 MySQL 版本 - 5.0。
  • 我的 GAC 中的连接器版本,
    • MySQL.Data 5.0.9.0
    • MySQL.Web 6.6.5.0
    • MySQL.Data.CF 6.7.4.0
  • 我已部署 bin 的连接器版本,
    • MySQL.Data 6.6.5.0
    • MySQL.Web 6.6.5.0
    • MYSQL.Data.Entity 6.6.5.0 (我从 \ProgramFiles\MYSQL\Connector NET.. 获得这些版本。)
  • Entity Framework 5.0/4.0(都试过了,还是不行!)
  • ASP .NET MVC 4

而我的配置是这样的,

  <entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
    <providers>
      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
    </providers>
    <DbProviderFactories>
      <add name="MySQL Data Provider"
           invariant="MySql.Data.MySqlClient"
           description=".Net Framework Data Provider for MySQL"
           type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data" />
    </DbProviderFactories>
  </entityFramework>
  <connectionStrings>
    <add name="BlogEntities" connectionString="metadata=res://*/Models.BlogEntities.csdl|res://*/Models.BlogEntities.ssdl|res://*/Models.BlogEntities.msl;provider=MySql.Data.MySqlClient;provider connection string=&quot;server=somehost;User id=someuser;pwd=somepassword;database=somedb&quot;" providerName="System.Data.EntityClient" />
  </connectionStrings>

我得到的堆栈跟踪,

找不到请求的 .Net Framework 数据提供程序。它可能没有安装。 说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

异常详细信息:System.ArgumentException:找不到请求的 .Net Framework 数据提供程序。可能没有安装。

来源错误:

在执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常来源和位置的信息。

堆栈跟踪:

[ArgumentException: 无法找到请求的 .Net Framework 数据 提供者。它可能没有安装。]
System.Data.Common.DbProviderFactories.GetFactory(字符串 providerInvariantName) +1426271
System.Data.EntityClient.EntityConnection.GetFactory(字符串 providerString) +27

[ArgumentException: 找不到指定的商店提供程序 配置,或无效。]
System.Data.EntityClient.EntityConnection.GetFactory(字符串 提供者字符串)+92
System.Data.EntityClient.EntityConnection.ChangeConnectionString(字符串 新连接字符串)+246
System.Data.EntityClient.EntityConnection..ctor(字符串 连接字符串)+43
System.Data.Objects.ObjectContext.CreateEntityConnection(字符串 连接字符串)+85
System.Data.Objects.ObjectContext..ctor(字符串连接字符串, String defaultContainerName) +16 Foo.Models.BlogEntities..ctor() in BlogEntities.Designer.cs:34

这里有一些我已经尝试过的东西。 - 在 DbProviderFactories 中,我尝试给出 bin 部署程序集的完整名称(版本和公钥)。 - 我尝试将不同版本的 MySQL*.dll 放入 bin 文件夹并进行部署。 - 我尝试了实体框架的两个版本(4.0 和 5.0)。

注意 - 我已经删除了使用 DefaultConnection 的所有其他部分,例如 DefaultProfileProvider、DefaultMembershipProvider、DefaultRoleProvider、DefaultSessionProvider(因为我也删除了 DefaultConnection)。 它在本地机器上运行良好,但在 GoDaddy 服务器上托管时失败。

可以找到完整的配置文件@https://gist.github.com/sudarsanyes/6149579

仍然没有运气。请帮忙!这让我抓狂:(

【问题讨论】:

    标签: mysql asp.net-mvc-4 entity-framework-4 entity-framework-5 mysql-connector


    【解决方案1】:

    您能否尝试将连接字符串中的“用户 ID”替换为“UID”...

    【讨论】:

      【解决方案2】:

      好的,已解决所有这些问题。这就是我所做的,

      1. 迁移到最新的 EF v6.0。
      2. 通过 nuget 下载最新的 MySql EF 连接器 6.8.3。
      3. 以完全信任的方式运行应用程序。

      现在一切似乎都例外了。

      【讨论】:

        猜你喜欢
        • 2012-06-06
        • 1970-01-01
        • 2013-02-18
        • 2012-04-01
        • 1970-01-01
        • 1970-01-01
        • 2011-09-24
        • 1970-01-01
        相关资源
        最近更新 更多