【发布时间】:2016-05-17 13:54:43
【问题描述】:
我的问题详情如下,
工作环境
- Npgsql = 3.0.7
- 实体框架 = 6.1.3
- PGPOOL = 3.5.2
- Postgres = 9.4.8
查询数据库时经常出现以下错误(异常可能因时间和发生地点而异)。
错误 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, Func3 操作,TInterceptionContext 拦截上下文,Action3 executing, Action3 执行)
在 System.Data.Entity.Infrastructure.Interception.DbCommandDispatcher.Reader(DbCommand 命令,DbCommandInterceptionContext 拦截上下文)
在 System.Data.Entity.Core.EntityClient.Internal.EntityCommandDefinition.ExecuteStoreCommands(EntityCommand entityCommand,CommandBehavior 行为)
或:
错误 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
在 Npgsql.NpgsqlConnector.ExecuteInternalCommand(FrontendMessage 消息,带超时的布尔值)
在 Npgsql.NpgsqlTransaction.Commit()
在 System.Data.Entity.Infrastructure.Interception.InternalDispatcher1.Dispatch[TTarget,TInterceptionContext](TTarget target, Action2 操作,TInterceptionContext 拦截上下文,Action3 executing, Action3 执行)
同样的查询在没有 pgpool 的情况下运行,不会出现上述异常。
你能建议我解决这个问题吗?
提前谢谢你。
【问题讨论】:
标签: npgsql