C# Postgres libpq调用PQfinish崩溃

C# Postgres libpq调用PQfinish崩溃,c#,postgresql,interop,C#,Postgresql,Interop,当我试图关闭与postgreSQL数据库的连接时,我有这个iterop代码从我的asp.net.net核心调用PQfinish 不知什么原因,它可能会工作一次,然后崩溃,使整个网站停止工作 我可以毫无问题地打开连接、执行查询、检索结果。只有电话总是会崩溃 GostgreSQL 9.5 X64 < P>与C++的LIPPQ包装器有类似的问题。 它看起来好像在PQfinish调用上崩溃了,但这是因为我们在对查询结果使用PQclear之后返回了查询的PGresult(因此释放了PGresult) 后

当我试图关闭与postgreSQL数据库的连接时,我有这个iterop代码从我的asp.net.net核心调用PQfinish

不知什么原因,它可能会工作一次,然后崩溃,使整个网站停止工作

我可以毫无问题地打开连接、执行查询、检索结果。只有电话总是会崩溃


GostgreSQL 9.5 X64

< P>与C++的LIPPQ包装器有类似的问题。 它看起来好像在PQfinish调用上崩溃了,但这是因为我们在对查询结果使用PQclear之后返回了查询的PGresult(因此释放了PGresult)

后来我们想使用PGresult时,应用程序崩溃了

我们的解决方案是在使用PQclear释放PGresult之前返回从PGresult复制的字符串


检查您是否没有这样做。

您可以非常确定“连接”无效。多一点代码会有帮助。
[DllImport("libpq", EntryPoint = "PQfinish", CallingConvention = CallingConvention.Cdecl)]
    internal static extern void PQfinish(IntPtr connection);
    private static void Close(IntPtr connection)
    {
        PQfinish(connection);
    }