[英]random sql connection can't be established issue
我们的代码很简单
using (var context = dbNewsEntities.CreateContext())
{
CheckClient(clientId, context);
var articles = context.GetArticlesForRSS(clientId, 0, ArchiveStartDays, false);
}
随机我们得到sql连接问题。 我使用windbg检查SqlConnection,实际上池中有100个(默认)连接。
但是,当我使用此处介绍的方法检查那些连接时,它们都已关闭。 (因为_innerConnection对象是System.Data.ProviderBase.DbConnectionClosedNeverOpened,而不是我们正在使用的某些方法)。
当池中有100个关闭的连接时会发生什么? 我假设C#代码只会选择一个,而不是创建一个。 我对吗?
非常感谢
抱歉,现在我意识到我们的代码并不像我放在那里那样简单。
原来,有一些代码隐藏在另一个函数中,没有正确关闭。 如果有帮助,您可以使用:
SELECT
DBID,
DB_NAME(dbid) as DBName,
COUNT(dbid) as NumberOfConnections,
loginame as LoginName
FROM
sys.sysprocesses
WHERE
dbid > 0
GROUP BY
dbid, loginame
要查看数据库中有多少个连接(如果未正确捕获实时系统的异常),则可以在windbg中使用
.foreach (ex {!dumpheap -type System.Data.EntityException -short}){.echo "********************************";!pe ${ex} }
这将为您打印所需的异常和堆栈跟踪。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.