从流

时间:2016-10-04 13:01:20

标签: c# sql postgresql npgsql

我从昨天开始使用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)")){ ... }

任何想法?

0 个答案:

没有答案