我使用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>
答案 0 :(得分:0)
尝试在两个位置更新包。看起来像是一个简单的版本差异
答案 1 :(得分:0)
您正在使用不同版本的MySql.Data DLL - 版本= 6.5.4.0和版本= 6.9.9.0(它在例外中)
将配置文件更改为使用6.5.4.0(目前指定6.9.9.0)。