.net mysql 更新_升级 MySql.Data for NET 后遇到的神坑

今天把一个之前基于 http://ASP.NET MVC 5 + EntityFramework 5 的项目里的 Nuget 包都升级了一下,包括将 EF 从 6.1.3 升级到 6.2.0,将 MySql.Data (用于 EF 连接 MySQL 数据库)从 6.9.9 升级到 8.0.12,MySql.Data.Entity 从 6.9.9 升级到 6.10.8,结果一运行就在连接数据库的代码上出现了错误,具体错误为:MethodAccessException: 方法“MySql.Data.MySqlClient.MySqlProviderServices.GetDbProviderManifestToken(System.Data.Common.DbConnection)”尝试访问方法“MySql.Data.MySqlClient.MySqlConnection.get_Settings()”失败。

折腾了半天(过程略去),终于在 StackOverflow 上找到了问题的原因:

原因就是:Oracle 在升级了 MySql.Data 到 8.x 版之后,并没有直接将原先配套使用的 MySql.Data.Entity 同样升级到 8.x,而是改名为了 MySql.Data.EntityFramework,所以需要在 Nuget 中先卸载原来的 MySql.Data.Entity,然后安装 MySql.Data.EntityFramework。除此之外,还需要在 Web.config 文件中做一些小改动,需要将下图中红色矩形标注的部分

改为蓝色矩形标注的部分(就是修改命名空间与版本号)

修改好之后,程序再次报错,错误为:The host xx.xx.xx.xx does not support SSL connections.

此时需要在 Web.config 的 connectionstring 设置中加上 sslmode=none。

升级 MySql.Data 相关包后的所有工作到此结束,程序又可以正常执行了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值