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


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

  • 相关阅读:
    MySQL之视图
    OpenAirInterface 实践2 :构建 OAI 系统
    集成学习 | MATLAB集成学习算法比较
    类和对象的知识点补充
    pip 更新命令使用和报错解决
    sleuth+zipkin持久化和gateway设置跨域
    open62541交叉编译
    基于 SPI 的增强式插件框架设计
    Java 中的 void 和 Kotlin 的 Unit
    共享内存+inotify机制实现多进程低延迟数据共享
  • 原文地址:https://blog.csdn.net/coldcrane/article/details/126367551