我正在使用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 举报,一经查实,本站将立刻删除。