我从昨天开始使用Npgsql 3.1.7,当时我通过Nuget将其更新为3.1.8,但我得到了同样的例外。
我正在连接到远程Windows服务器2012,Postgresql 9.5也在Debian 8上尝试了Postgresql 9.4,但行为相同。
我要做的是使用Npgsql BeginBinaryExport通过COPY(select ..)命令选择数据,但在几秒钟后抛出异常。这种情况每次都会发生
我试图将Pooling=false,Keepalive=10, commandtimeout=0
应用于连接字符串但没有成功。
我得到了:
从流中读取时出现异常无法从中读取数据 传输连接:无法建立连接。错误的答案 在超时间隔或丢失后从连接部分 响应。
最后一部分是意大利语,我试着翻译它,我希望你能理解它。
这里是StackTrace:
抛出异常:Npgsql.dll中的'Npgsql.NpgsqlException' Npgsql.ReadBuffer.Ensure(Int32 count,Boolean dontBreakOnTimeouts)in Npgsql.NpgsqlConnector.DoReadMessage(DataRowLoadingMode dataRowLoadingMode,Boolean isPrependedMessage)in Npgsql.NpgsqlConnector.ReadMessageWithPrepended(DataRowLoadingMode dataRowLoadingMode)在Npgsql.NpgsqlConnector.ReadExpectingT中 Npgsql.NpgsqlBinaryExporter..ctor(NpgsqlConnector连接器,字符串 copyToCommand)在Npgsql.NpgsqlConnection.BeginBinaryExport(String copyToCommand)
我尝试使用NpgsqlCommand
将命令从COPY(选择...)更改为简单选择,但它可以正常工作,但如果我从连接字符串中删除Pooling=false,Keepalive=10, commandtimeout=0
,则会返回异常。
编辑: 我正在使用的代码是:
using (var reader = connection.BeginBinaryExport("COPY (select * from \"DTC_Det\") TO STDOUT (FORMAT BINARY)")){ ... }
任何想法?