MySQL Connector Casting问题

时间:2017-10-18 07:04:35

标签: c# mysql asp.net-mvc azure

我使用VS2015开发MVC项目,将MySQL作为数据库。
我将项目上传到azure进行测试,我也在azure中创建了我的MySQL数据库副本。
但是,当我试图打开时我得到这个错误的网站:

[A]MySql.Data.MySqlClient.MySqlConnection cannot be cast to [B]MySql.Data.MySqlClient.MySqlConnection. Type A originates from 'MySql.Data, Version=6.5.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d' in the context 'Default' at location 'D:\Windows\Microsoft.Net\assembly\GAC_MSIL\MySql.Data\v4.0_6.5.4.0__c5687fc88969c44d\MySql.Data.dll'. Type B originates from 'MySql.Data, Version=6.9.9.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d' in the context 'Default' at location 'D:\local\Temporary ASP.NET Files\root\0b5c8b85\f7b6d016\assembly\dl3\b34b00a3\00f26175_a4c8d101\MySql.Data.dll'.

这个问题只发生在azure中,但应用程序在本地工作。我明白了,问题是因为在azure中安装了MySQL连接器/网络版本。
有谁可以帮我解决这个问题?我在.config文件中找到了一个代码,但它只绕过了对我没用的错误。

的解决方案
将其添加到web.config文件

<system.data>
  <DbProviderFactories>
   <remove invariant="MySql.Data.MySqlClient" /> 
    <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.9.9.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
 </DbProviderFactories>
</system.data>

2 个答案:

答案 0 :(得分:0)

尝试在两个位置更新包。看起来像是一个简单的版本差异

答案 1 :(得分:0)

您正在使用不同版本的MySql.Data DLL - 版本= 6.5.4.0和版本= 6.9.9.0(它在例外中)

将配置文件更改为使用6.5.4.0(目前指定6.9.9.0)。