从流读取时出现 Npgsql 异常

Gap*_*ppa 5 c# sql postgresql npgsql

我从昨天开始使用 Npgsql 3.1.7,当时我通过 Nuget 将其更新到 3.1.8,但我得到了相同的异常。

我正在连接到远程 Windows Server 2012,Postgresql 9.5 也在 Debian 8 上尝试了 Postgresql 9.4,具有相同的行为。

我想做的是使用 Npgsql BeginBinaryExport 通过 COPY(select..) 命令选择数据,但几秒钟后抛出异常。每次运行都会发生这种情况。我尝试应用于Pooling=false,Keepalive=10, commandtimeout=0连接字符串但没有成功。

我越来越:

从流读取时出现异常无法从传输连接读取数据:无法建立连接。超时间隔后连接部分给出错误答案或丢失响应。

最后一部分是意大利语,我试着翻译一下,希望你能理解。

这里是堆栈跟踪:

抛出异常: Npgsql.ReadBuffer.Ensure(Int32 count, Boolean dontBreakOnTimeouts) 中的 Npgsql.NpgsqlException' 位于 Npgsql.NpgsqlConnector.DoReadMessage(DataRowLoadingMode dataRowLoadingMode, Boolean isPrepishedMessage) 中 Npgsql.NpgsqlConnector.ReadMessageWithPrepished(DataRowLoadingMode dataRowLoadingMode) 中NpgsqlConnector.ReadExpectingT 在 Npgsql.NpgsqlBinaryExporter..ctor(NpgsqlConnector 连接器,字符串 copyToCommand) 在 Npgsql.NpgsqlConnection.BeginBinaryExport(字符串 copyToCommand)

我尝试将命令从 COPY(select ...) 更改为简单的 select usingNpgsqlCommand并且它有效,但是如果我Pooling=false,Keepalive=10, commandtimeout=0从连接字符串中删除,则会返回异常。

编辑:我使用的代码是:

using (var reader = connection.BeginBinaryExport("COPY (select * from \"DTC_Det\") TO STDOUT (FORMAT BINARY)")){ ... }
Run Code Online (Sandbox Code Playgroud)

任何想法?

小智 1

字符串连接字符串=主机=服务器名;用户名=postgres;密码=密码;数据库=postgres;端口=1234;超时=50;

它将在 c# 中工作。