【问题标题】:ASP.Net Core + .NET Framework Web API - frequent network errorsASP.Net Core + .NET Framework Web API - 频繁的网络错误
【发布时间】:2020-01-02 00:10:00
【问题描述】:

我有一个针对 .NET 框架 4.7.2 的 ASP.Net Core 2.2 Web API,在 IIS 下运行,进程外。我看到很多传出网络问题。该应用程序连接到各种事物(SQL 数据库、通过 XMLA 的 SSAS 等),我看到连接到各种资源的全面网络故障。起初我以为它只是 SQL 连接,但它似乎是一般的网络。我经常遇到某种失败,大约十分之一的请求。我在 web.config 中有这个:

    <system.net>
      <connectionManagement>
        <add address="*" maxconnection="65535"/>
      </connectionManagement>
    </system.net>

这在 Startup.cs 中:

ServicePointManager.DefaultConnectionLimit = int.MaxValue;

但是,失败的不仅仅是 HTTP 连接,主要是 SQL、SSAS、通用 TCP。

失败是诸如 SQL 错误 26、无法连接以及其他非 SQL 网络资源的类似情况。它是间歇性的,盒子上几乎没有任何负载。当 API 调用背靠背时似乎会发生这种情况。

我认为这不是一般网络(路由器/交换机)问题,因为我可以设置,例如,脚本控制台 SQL 连接/选择/拆卸到远程服务之一,显示来自应用程序的连接失败,这永远不会失败,即使在重复循环运行的同时,我看到应用程序连接到同一个数据库时出现错误。 我一定缺少一些 TCP/网络调整,如果有任何建议,将不胜感激。

【问题讨论】:

  • 来自 cmd.exe >Ping IP(或名称)。 ping 具有长消息和不同数量的消息的选项。如果您有互联网问题,ping 将显示错误。这就是 ping 的目的。
  • 即使 API 应用显示网络错误,我也可以连续运行成功的 ping 而不会丢包。
  • 使用 ping 选项 -t -l 65000 提供大量数据。你试过名字和地址吗?返回时间应该非常一致。错误似乎不在网络的 TCP 层。嗅探器数据可能会显示更多信息以帮助解决。 ping 响应在网卡上,不受应用层的影响。所以我怀疑其他一些应用程序正在影响结果。如果病毒检查程序或防火墙正在检查可能导致这些故障的端口号。使用的 IP 路由被 ping 使用,端口号没有被检查。
  • 我可以试试这个,但我也可以运行一个脚本连接到同一个 SQL 数据库,有时每两秒从应用程序连接一次失败,这永远不会失败。
  • 听起来您可能在从 DNS 服务器获取服务器名称时遇到了时间问题。使用 IP 地址或计算机名称(或两者)是否会失败?

标签: c# .net asp.net-core iis tcp


【解决方案1】:

您遇到了一个非常不寻常的问题。使用大数据包大小的原因是当您的错误数量非常少时,您发送的数据越多,您得到的错误就越多。但是错误率应该是恒定的。你总会遇到错误。但在这种情况下,误差不是恒定的。当您发送大于 1500 字节的数据时,数据被拆分为多个数据包时的唯一开始。

您可能有一个多跳连接,其中客户端和服务器不是通过一根电缆直接连接的。您正在通过路由器和服务器,每个路由器和服务器都有自己唯一的 IP 地址(和名称)。

通常可以通过更换电缆或硬件来修复错误。您可以随机开始更换硬件,也可以使用从/到不同服务器和路由器的 ping 来查找哪些工作以及哪些错误有助于隔离问题。

在您的情况下,问题似乎是您的设备之一设计不正确。从 1500 字节开始的错误通常是由于供应商没有完全测试设备,也没有修复在 alpha 和 beta 测试期间发现的错误。大多数供应商在测试和认证他们的设备方面做得很好。所以这可能是一个“中国制造”的问题。或者甚至是病毒。仍然要解决问题,开始替换或使用 ping 来隔离哪些路由有效,哪些会出错。

【讨论】:

  • 诊断良好,非常感谢。我们切换了 VMESX 主机,问题就解决了,所以看起来确实是您怀疑的一些低级网络错误。使用较大的数据包 ping 是一个有用的工具。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-24
  • 1970-01-01
  • 2016-10-07
  • 1970-01-01
相关资源
最近更新 更多