原来访问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()成功。