DotNet 中 npgsql无法正常使用的处理

博客讲述了作者在使用Npgsql连接GreenPlum数据库时遇到的问题,由于旧版本Npgsql引发的连接错误。在尝试升级Npgsql版本过程中,遇到了依赖项不匹配的问题。经过一系列尝试,最终发现Npgsql版本3.1.0可以成功连接数据库。文章揭示了.NET Framework应用程序升级组件库时可能遇到的挑战和解决策略。

原来访问GreenPlum是用Npgsql 2.2.3,采用的是直接引用npgsql.dll 的方式。

结果某一天不能访问了,NpgsqlDatabase.Open()报错:

"数据库(***:5432/***)连接失败: ERROR: 42704: unrecognized configuration parameter "ssl_renegotiation_limit""。

GreenPlum版本为:

PostgreSQL 9.4.24 (Greenplum Database 6.1.0 build commit:6788ca8c13b2bd6e8976ccffea07313cbab30560)

因为Npgsql 2.2.3确实是很老的版本,便打算通过升级Npgsql解决问题。

先去下载npgsql(https://www.nuget.org/packages/Npgsql/),都是nupkg的格式了。

确实现在DotNet 都用 nuget 管理第三方组件库了,比较喜欢下载在本地安装的方式。

项目只支持.Net Framework 4.5,所以Npgsql的版本也不能太高。

支持.NET Framework 4.5的npgsql最高版本为4.0.13,之后4.1.0 就不支持了。

于是下载npgsql 4.0.13,然后再本地安装。

注意本地安装需要先见一个本地的程序包源,“工具-》NuGet 包管理器-》管理解决方案的NuGet che程序包(N)...-》设置”,下载的包放到指定目录下。

安装npgsql 4.0.13,结果报错:

无法解析依赖项“System.Memory (≥ 4.5.3)”。

 不想动.net Framework,所以还是动Npgsql的版本,于是就尝试不同的版本。

2.2.7,nuget安装成功,代码报错:"数据库(yugang@pg.sunsharp.cn:5432/warehouse)连接失败: ERROR: 42704: unrecognized configuration parameter \"ssl_renegotiation_limit\""
3.0.0,nuget安装成功,代码报错:"数据库(yugang@pg.sunsharp.cn:5432/warehouse)连接失败: 调用的目标发生了异常。"
3.2.7,nuget安装失败:无法解析依赖项“System.Threading.Tasks.Extensions (≥ 4.3.0)”。
4.0.5,nuget安装失败: 无法解析依赖项“System.Memory (≥ 4.5.2)”。
4.0.13,nuget安装失败: 无法解析依赖项“System.Memory (≥ 4.5.3)”。

最终,3.1.0 ok了,NpgsqlDatabase.Open()成功。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值