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)
任何想法?