C# 随机sql连接可以';这是一个无法确定的问题
我们的代码很简单C# 随机sql连接可以';这是一个无法确定的问题,c#,sql-server,sqlconnection,C#,Sql Server,Sqlconnection,我们的代码很简单 using (var context = dbNewsEntities.CreateContext()) { CheckClient(clientId, context); var articles = context.GetArticlesForRSS(clientId, 0, ArchiveStartDays, false); } 我们随机会遇到sql连接问题。我使用windbg检查SqlConnection,实际上池中有
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} }
这将打印您需要的异常和堆栈跟踪 你得到的确切例外情况是什么?