【问题标题】:Why am I getting this error "Internal connection fatal error" in only one of my stored procedures?为什么我只在我的一个存储过程中收到此错误“内部连接致命错误”?
【发布时间】:2011-04-22 15:40:23
【问题描述】:

这个问题和这里类似。

What Causes "Internal connection fatal errors"

除非它只发生在一个存储过程上并且一直在发生并且仅在我从我的网站访问此存储过程时才会发生。

我什至在 SQL Server 中运行了存储过程,它似乎执行得很好。

可能是什么错误?

【问题讨论】:

    标签: asp.net sql-server sql-server-2005


    【解决方案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();
    

    【讨论】:

      【解决方案2】:

      正如消息所说,问题出在与 SQL 的连接上。

      因为它只发生在一个过程中,所以我的任务是在尝试调用此存储过程之前,您已经留下了一些与数据库的开放连接。

      您可以通过打开 Perfmon 并查看连接池来检查连接。 如果它随着时间的推移而增长,那么你留下了开放的连接。

      还要检查您的网络是否稳定,您是通过 LAN、Wan、Web、本地还是远程?在连接字符串中,您对此有何用处:127.0.0.1 / localhost / 或真实 IP 地址?

      【讨论】:

      • 我让 dba 重新启动数据库,但仍在发生。在我看来这很奇怪。我们甚至有一个旧的数据库副本(相同的模式),并将网络服务器指向那个,它可以工作......
      猜你喜欢
      • 2019-06-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-12
      相关资源
      最近更新 更多