我的问题详情如下,
工作环境
查询数据库时,经常发生以下错误(异常可能会随时间和地点而变化。)
错误System.IO.EndOfStreamException:尝试读取流的结尾。
在Npgsql.NpgsqlBuffer.Ensure(Int32计数)
在Npgsql.NpgsqlConnector.DoReadSingleMessage(DataRowLoadingMode dataRowLoadingMode,Boolean returnNullForAsyncMessage,Boolean isPrependedMessage)
在Npgsql.NpgsqlConnector.ReadSingleMessage(DataRowLoadingMode dataRowLoadingMode,Boolean returnNullForAsyncMessage)
在Npgsql.NpgsqlCommand.Execute(CommandBehavior行为)
在Npgsql.NpgsqlCommand.ExecuteDbDataReaderInternal(CommandBehavior行为)
在Npgsql.NpgsqlCommand.ExecuteDbDataReader(CommandBehavior行为)
在System.Data.Entity.Infrastructure.Interception.InternalDispatcher1.Dispatch[TTarget,TInterceptionContext,TResult](TTarget target, Func
3操作,TInterceptionContext interceptionContext,Action3 executing, Action
3执行)
在System.Data.Entity.Infrastructure.Interception.DbCommandDispatcher.Reader(DbCommand命令,DbCommandInterceptionContext interceptionContext)
在System.Data.Entity.Core.EntityClient.Internal.EntityCommandDefinition.ExecuteStoreCommands(EntityCommand entityCommand,CommandBehavior behavior)
或:
错误System.IO.EndOfStreamException:尝试读取流的结尾。
在Npgsql.NpgsqlBuffer.Ensure(Int32计数)
在Npgsql.NpgsqlConnector.DoReadSingleMessage(DataRowLoadingMode dataRowLoadingMode,Boolean returnNullForAsyncMessage,Boolean isPrependedMessage)
在Npgsql.NpgsqlConnector.ReadSingleMessage(DataRowLoadingMode dataRowLoadingMode,Boolean returnNullForAsyncMessage)
在Npgsql.NpgsqlConnector.ReadExpectingT
at Npgsql.NpgsqlConnector.ExecuteInternalCommand(FrontendMessage message,Boolean withTimeout)
在Npgsql.NpgsqlTransaction.Commit()
在System.Data.Entity.Infrastructure.Interception.InternalDispatcher1.Dispatch[TTarget,TInterceptionContext](TTarget target, Action
2操作,TInterceptionContext interceptionContext,Action3 executing, Action
3执行)
相同的查询在没有pgpool的情况下运行,不能获得上述异常。
你能建议我解决这个问题吗?
提前谢谢你。
答案 0 :(得分:0)
这似乎是https://github.com/npgsql/npgsql/issues/1060的副本,已经修复。尝试使用新的3.1.0来查看它是否解决了你的问题(注意,它可能有点原始),或等到3.0.8出来 - 它也将包含修复。