【发布时间】:2011-04-22 15:40:23
【问题描述】:
这个问题和这里类似。
What Causes "Internal connection fatal errors"
除非它只发生在一个存储过程上并且一直在发生并且仅在我从我的网站访问此存储过程时才会发生。
我什至在 SQL Server 中运行了存储过程,它似乎执行得很好。
可能是什么错误?
【问题讨论】:
标签: asp.net sql-server sql-server-2005
这个问题和这里类似。
What Causes "Internal connection fatal errors"
除非它只发生在一个存储过程上并且一直在发生并且仅在我从我的网站访问此存储过程时才会发生。
我什至在 SQL Server 中运行了存储过程,它似乎执行得很好。
可能是什么错误?
【问题讨论】:
标签: asp.net sql-server sql-server-2005
这可能已经修复了,但是...
我自己的一些 ASP.NET 代码也遇到了同样的问题。调用 SqlDataReader.Close() 或 SqlDataReader.Dispose()(来自内部类 SqlClient.TdsParser)时随机抛出异常。
我能够通过简单地使用 SqlConnection.Close() 来解决问题。显然 SqlDataReader.Close() 是不可靠的。
例子:
if (this._Command != null)
{
this._Command.Cancel();
this._Command.Dispose();
}
if (this._Connection.State == ConnectionState.Open)
{
this._Connection.Close();
}
if (this._DataReader != null)
{
this._DataReader.Dispose();
}
this._Connection.Dispose();
【讨论】:
正如消息所说,问题出在与 SQL 的连接上。
因为它只发生在一个过程中,所以我的任务是在尝试调用此存储过程之前,您已经留下了一些与数据库的开放连接。
您可以通过打开 Perfmon 并查看连接池来检查连接。 如果它随着时间的推移而增长,那么你留下了开放的连接。
还要检查您的网络是否稳定,您是通过 LAN、Wan、Web、本地还是远程?在连接字符串中,您对此有何用处:127.0.0.1 / localhost / 或真实 IP 地址?
【讨论】: