[DllImport("libpq", EntryPoint = "PQfinish", CallingConvention = CallingConvention.Cdecl)]
internal static extern void PQfinish(IntPtr connection);
private static void Close(IntPtr connection)
{
PQfinish(connection);
}
在尝试关闭与postgreSQL数据库的连接时,我有这个iterop代码从我的asp.net dot net core调用PQfinish。
由于未知原因,它可能会工作一次,然后崩溃并使整个网站停止工作。
我可以打开连接,执行查询,检索结果,没有任何问题。只调用PQfinish总是崩溃。
PostgreSQL 9.5 x64
答案 0 :(得分:0)
我们的libpq包装器在c ++中遇到了类似的问题。
看起来它在PQfinish调用上崩溃了,但这是因为我们在使用PQclear后对结果进行了回复(因此释放了PGresult)。
稍后我们想要使用PGresult,应用程序崩溃了。
我们的解决方案是在使用PQclear释放它之前返回从PGresult复制的字符串。
检查你是否做了类似的事情。