此问题与此类似。
What Causes "Internal connection fatal errors"
除了它只发生在一个存储过程上并且一直在发生,并且仅在我从我的网站访问此存储过程时才发生。
我甚至在SQL Server中运行了存储过程,它似乎执行得很好。
错误可能是什么?
答案 0 :(得分:1)
正如消息所说,问题出在与SQL的连接上。
因为它仅发生在一个过程中,所以我的任务是在尝试调用此存储过程之前,您已经保留了一些与数据库的开放连接。
您可以通过打开Perfmon来检查连接,然后查看连接池。 如果它随着时间的推移而增长,那么你就会保持开放的联系。
同时检查您的网络是否稳定,您是在Lan,Wan,Web,本地还是远程?在连接字符串中你使用了什么:127.0.0.1 / localhost /或真正的ip地址?
答案 1 :(得分:1)
这可能已经修复但是......
我使用自己的一些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();