freesql “【主库】状态不可用,等待后台检查程序恢复方可使用”异常的解决。aspose报错:The document appears to be corrupted and cannot be

解决FreeSql与Aspose冲突

我的项目仓储FreeSqlRepository中同时引用了“FreeSql.Provider.MySql” 和“FreeSql.Provider.MySqlConnector” 两个组件。  当我使用freesql操作数据库增删改查时,系统总是报类似如下错误:【主库】状态不可用,等待后台检查程序恢复方可使用。Fatal error encountered during command execution.
其实只要删除FreeSql.Provider.MySql,系统就不会报这种错误了,但是巧合的是,“FreeSql.Provider.MySql”这个引用删除了又会引起我使用的一个老版本aspose.words插件他new document失败。

报错:Aspose.Words.FileCorruptedException:“The document appears to be corrupted and cannot be loaded.”

所以 FreeSql.Provider.MySql 还不能删除,两头为难。
经过freesql讨论群一个大佬发的链接指导。可以在.UseConnectionString()方法中配置第三个参数Type.GetType("FreeSql.MySql.MySqlProvider`1,FreeSql.Provider.MySqlConnector"),强行制定连接串使用的插件类型,可以解决主库不可用的问题。

参考链接:https://github.com/dotnetcore/FreeSql/discussions/1207

同时安装了FreeSql.Provider.MySql和FreeSql.Provider.MySqlConnector 无法使用 ExecuteMySqlBulkCopy 方法
 

二个共存时,默认根据 FreeSql.Provider.MySql 得到 的MySqlProvider 实现 ,可在UseConnectionStrings中第三个参数指定Type

UseConnectionStrings(DataType.MySql,"连接串",Type.GetType("FreeSql.MySql.MySqlProvider`1,FreeSql.Provider.MySqlConnector"));

发布后测试补充:

16点10,经过发布后测试,发现 在UseConnectionStrings中第三个参数指定Type之后,跟删除FreeSql.Provider.MySql实现的是一个效果,可以让系统不报错 主库不可用, 但是同时又让aspose.word 不能new document()了。 还是没能解决问题。

现在的重点可能还是要解决aspose.word 不能new document()的问题。


aspose.word 不能new document() 最新解决办法和原理说明
The document appears to be corrupted and cannot be loaded这个错误,本身是字符集问题。可能是aspose需要GBK字符集,但是.NETCORE6默认没有注册GBK字符集。然后刚好我用到FreeSql.Provider.MySql这个插件他帮忙注册了GBK字符集,所以aspose就没有报错,但是删除了FreeSql.Provider.MySql,aspose就没有GBK字符集了,所以在aspose使用之前要注册GBK字符集。 一行代码就行了:Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
截图如下我红框画的部分加上就好了:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值