在極少數情況下,我遇到了petapoco的一些問題。Peta poco - ExecuteReader需要一個開放且可用的連接
有時我得到以下異常:
System.InvalidOperationException: ExecuteReader requires an open and available Connection. The connection's current state is connecting.
at System.Data.SqlClient.SqlConnection.GetOpenConnection(String method)
at System.Data.SqlClient.SqlConnection.ValidateConnectionForExecute(String method, SqlCommand command)
at System.Data.SqlClient.SqlCommand.ValidateCommand(String method, Boolean async)
at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean asyncWrite)
at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
at System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior)
at System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader()
at PetaPoco.Database.<Query>d__44`1.MoveNext()
我真的不知道該怎麼辦纔好。有沒有人見過這個?有關它爲什麼會發生的任何建議以及如何處理它?
,因爲它很少發生(也許2-3分貝的呼叫%)
我使用petapoco的5.0.1版我不能複製。
謝謝! :)
編輯:
我使用下面的構造方法實例數據庫:
public Database(string connectionString, string providerName)
{
_connectionString = connectionString;
_providerName = providerName;
CommonConstruct();
}
我使用依賴注入象下面實例它作爲一個單身:
Container.Register(Component.For<IDatabase>().ImplementedBy<Database>().UsingFactoryMethod(() => new Database(configuration.ConnectionString, configuration.DbFactoryProvider)).LifestyleSingleton());
什麼是數據庫和驅動程序,您正在使用? – miensol
我正在使用SQL Server Web,我如何知道我使用的驅動程序? – Diemauerdk
你好。 PetaPoco的維護者在這裏。這是一個有趣的問題。你能確認你沒有早期處理PetaPoco嗎?另外,我可以問你是否使用共享連接構造函數? – Plebsori