微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – 超时已过期.从池中获取连接之前经过的超时时间.

我正在使用WebApi和AngularJS开发应用程序.我花了一些时间申请后得到这个例外.我在这个应用程序中使用EntityFramework.

“超时已到期.在从池中获取连接之前已经过了超时时间.这可能是因为所有池连接都在使用中并且达到了最大池大小.”

堆栈跟踪

at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection,taskcompletionsource`1 retry,DbConnectionoptions userOptions,DbConnectionInternal& connection)
↵ at System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection,DbConnectionFactory connectionFactory,DbConnectionoptions userOptions)
at System.Data.sqlClient.sqlConnection.TryOpen(taskcompletionsource`1 retry)
at System.Data.sqlClient.sqlConnection.open()
at System.Data.EntityClient.EntityConnection.OpenStoreConnectionIf(Boolean openCondition,DbConnection storeConnectionToOpen,DbConnection originalConnection,String exceptionCode,String attemptedOperation,Boolean& closeStoreConnectionOnFailure)

解决方法

关闭数据库连接(这非常重要).
sqlConnection myConnection = new sqlConnection(ConnectionString);
try
{
     conn.open();
     someCall (myConnection);
}
finally
{
     myConnection.Close();                
}

要么

using (sqlConnection myConnection = new sqlConnection(ConnectionString))
{
     myConnection.open();
     someCall(myConnection);
}

检查连接到数据库用户数以及查询的超时时间.如果您有很长时间执行查询,请检查.

也许,重复的问题:

How can I solve a connection pool problem between ASP.NET and SQL Server?

原文地址:https://www.jb51.cc/csharp/98005.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐