1

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

以下是有关我的应用程序的一些详细信息,

  • 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(String providerInvariantName) +1426271
System.Data.EntityClient.EntityConnection.GetFactory(String providerString) +27

[ArgumentException:在配置中找不到指定的存储提供程序,或者无效。]
System.Data.EntityClient.EntityConnection.GetFactory(String providerString) +92
System.Data.EntityClient.EntityConnection.ChangeConnectionString(String newConnectionString) +246
System.Data.EntityClient.EntityConnection..ctor(String connectionString) +43
System.Data.Objects.ObjectContext.CreateEntityConnection(String connectionString) +85
System.Data.Objects.ObjectContext..ctor(String connectionString, String defaultContainerName) +16 BlogEntities.Designer.cs:34 中的 Foo.Models.BlogEntities..ctor()

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

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

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

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

4

2 回答 2

0

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

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

    <system.web> <trust level="Full" /> </system.web>

现在事情似乎例外。

于 2014-02-11T14:47:06.560 回答
0

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

于 2013-11-12T15:46:00.350 回答