【问题标题】:What causes this SqlException: A transport-level error has occurred when receiving results from the server什么导致这个 SqlException:从服务器接收结果时发生传输级错误
【发布时间】:2008-09-09 19:36:57
【问题描述】:

这是完整的错误:SqlException: A transport-level error has occurred when receiving results from the server. (provider: Shared Memory Provider, error: 1 - I/O Error detected in read/write operation)

对于我的应用程序中的一些单元测试(有超过 1100 个单元和系统测试),我开始间歇性地看到此消息。我正在使用 ReSharper 4.1 中的测试运行器。

另外一件事:我的开发机器是 VMWare 虚拟机。

【问题讨论】:

    标签: sql-server unit-testing resharper vmware-tools


    【解决方案1】:

    我在很多个月前遇到过这样的问题。底线是您的可用端口不足。

    首先确保您的调用应用程序启用了连接池。

    如果是这样,则检查 SQL Server 的可用端口数。

    发生的情况是,如果池关闭,那么每个调用都会占用一个端口,默认情况下需要 4 分钟才能使端口过期,而您的端口即将用完。

    如果池已打开,那么您需要分析 SQL Server 的所有端口,并确保您有足够的端口并在必要时扩展它们。

    当我遇到此错误时,连接池已关闭,每当网站上的负载正常时就会导致此问题。我们在开发中没有看到它,因为最大负载是 2 或 3 人,但是一旦数量增加到 10 人以上,我们就会一直看到这个错误。我们打开了池化,它修复了它。

    【讨论】:

      【解决方案2】:

      我在很多个月前也遇到过这个问题。但是,不要忽视@Longhorn213s 的解释,但我们有完全相反的行为。我们在开发和测试中收到错误,但在负载明显更大的生产中没有收到。我们最终容忍了开发中的问题,因为它是零星的,并没有实质性地减慢进度。我认为此错误可能有多种原因,但我自己始终无法确定原因。

      【讨论】:

      • 正如 Trumpi 建议的那样,我发现只需循环数据库服务器(或强制服务器释放连接的任何操作)就会发生此错误。连接仍然从另一端缓存在某个级别(在客户端软件或池中),然后在尝试使用它期间,发现它不再有效会返回“传输级错误”。所以这可能是因为您没有重新启动生产数据库服务器(一件好事)并且您确实重新启动了您的开发数据库服务器(谁在乎?)。
      【解决方案3】:

      我们也遇到了这个错误,并发现我们正在从数据库服务器终止 SQL 服务器连接。客户端应用程序认为连接仍然处于活动状态并尝试使用该连接,但由于它已终止而失败。

      【讨论】:

        【解决方案4】:

        我们在我们的环境中看到了这一点,并将其中的一部分追溯到我们查询中的“NOLOCK”提示。我们移除了 NOLOCK 提示,并将我们的服务器设置为使用快照隔离模式,这些错误的频率大大降低了。

        【讨论】:

          【解决方案5】:

          我们已经多次看到此错误,并尝试了不同的解决方案并取得了不同程度的成功。一个常见的潜在主题是给出错误的系统内存不足。如果托管 Sql Server 的服务器正在运行任何其他非操作系统进程,则尤其如此。默认情况下,SQL Server 将获取它可以获取的任何内存,然后为其他进程/驱动程序留下很少的内存。这可能会导致行为不稳定和消息断断续续。如果有其他进程可能需要它,最好将 SQL Server 配置为留出一些空间的最大内存。示例:在同一台机器上运行 SQL Server 开发者版副本的开发机器上的 Visual Studio。

          【讨论】:

            猜你喜欢
            • 2015-05-30
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-08-12
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多