繁体   English   中英

无法建立随机SQL连接问题

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM