【问题标题】:Sql Connection Error 40 Under LoadSql 连接错误 40 负载不足
【发布时间】:2019-06-03 07:57:59
【问题描述】:

我的 Web 服务器的数据库连接工作正常,但是当我触发了写入繁重的 Windows 服务时,我会随机收到“在建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。错误 40 。”来自我的网络服务器。

我已尝试关闭我的 Web 服务器的连接池,因为它们与 Windows 服务共享相同的连接字符串,但我不知道是什么原因造成的。

我的 SqlConnection 对象也都包含在 using 语句中,因此它们正在被释放。

Dapper 目前正在用于查询扩展方法。

连接字符串示例:“Data Source=SERVER;initial catalog=DBNAME;user id=USERNAME;password=PASSWORD;Pooling=False;”

using (IDbConnection connection = new SqlConnection(_connectionString))
{
     return connection.Query<TotalPosts>("analytics.TotalPosts_Sel", new { AccountId = accountId }, commandType: CommandType.StoredProcedure).FirstOrDefault();
}

【问题讨论】:

  • 也许你不应该使用触发器你使用了多少触发器..?你有DBA吗?咨询dba并尝试调试SQL ..你怎么确定这是一个sql问题这可能是一个网络问题吗??
  • 我目前没有使用任何触发器。我认为这可能是一个网络问题,但它只发生在另一台机器上的这个 Windows 服务运行时。可惜我没有DBA。我托管在 AWS 上。
  • 你如何通过不同的机器建立连接..?这些机器是否使用与您在正在工作的机器上使用的相同的 Sql.DataClient..?连接字符串是什么样的.. 连接是通过链接服务器完成的..?听起来也可能是超时问题,如果不知道您在做什么或如何做到这一点,很难确定这里发生了什么......
  • 重置连接时会发生这种情况。您多久关闭和打开一次数据库连接?你是否长时间使用同一个数据库连接对象?
  • 我可能在运行 SQL Profiler 并看到 1 个查询急需索引后解决了这个问题。我已添加它们并将继续监视我的服务器。

标签: c# sql-server ado.net


【解决方案1】:

好的,我知道这个问题已经有好几年了,但是当我在 2019 年使用 .NET 4.8 遇到同样的问题时,我将发布问题和解决方法。

您的问题是由于您创建和关闭连接的速度以及保持打开的连接数造成的。您正在导致低级数据库驱动程序/库出现瓶颈。

了解问题的一些有用信息:

https://support.microsoft.com/en-gb/help/328476/description-of-tcp-ip-settings-that-you-may-have-to-adjust-when-sql-se

使用连接池也会带来其他问题:

http://florianreischl.blogspot.com/2011/08/adonet-connection-pooling-internals-and.html

我的解决方法是让线程休眠 20 毫秒。每次迭代后。脏,但有效。

问候,

马里亚诺C.

【讨论】:

    【解决方案2】:

    请按照以下步骤操作:

    1- 确保您的 SQL Server 服务已启动。

    2- 确保在 SQL Server 配置管理器中启用 TCP/IP,右键单击 TCP-IP,转到属性并确保默认端口设置为 1433。

    3- 打开您的 Windows 防火墙。单击“更改设置”链接。当显示一个新的弹出窗口时,单击“添加端口”按钮。添加 1433 作为 SQL 的 TCP 端口:

    4- 在 SSMS 中连接到您的 SQL 连接,右键单击并转到属性。然后,确保选中“允许远程连接”复选框。

    参考:https://blog.sqlauthority.com/2009/05/21/sql-server-fix-error-provider-named-pipes-provider-error-40-could-not-open-a-connection-to-sql-server-microsoft-sql-server-error/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-08-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多