.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 相關包后的所有工作到此結束,程序又可以正常執行了。
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的.net mysql 更新_升级 MySql.Data for NET 后遇到的神坑的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux部署tomcat项目404_T
- 下一篇: 天大c语言离线考核答案,【天大考核】20