Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wcf TCP/IP无法建立传出连接_Wcf_Tcp - Fatal编程技术网

Wcf TCP/IP无法建立传出连接

Wcf TCP/IP无法建立传出连接,wcf,tcp,Wcf,Tcp,我们在web和SQL server(启用IPv6的Win 2008 SP1)上看到TCP/IP警告和相当多的连接故障,并且当工作进程/SQL server进程连续运行几天时,这种情况更为常见。我想知道这些警告的原因是什么?允许的默认TCP连接数是多少?我们如何增加它 TCP/IP无法建立传出端口 连接,因为所选的本地 端点最近用于连接 到同一远程端点。这 错误通常在传出时发生 连接在一个时间点打开和关闭 高比率,导致所有可用的本地 要使用的端口和强制TCP/IP 将本地端口重新用于传出端口 连接

我们在web和SQL server(启用IPv6的Win 2008 SP1)上看到TCP/IP警告和相当多的连接故障,并且当工作进程/SQL server进程连续运行几天时,这种情况更为常见。我想知道这些警告的原因是什么?允许的默认TCP连接数是多少?我们如何增加它

TCP/IP无法建立传出端口 连接,因为所选的本地 端点最近用于连接 到同一远程端点。这 错误通常在传出时发生 连接在一个时间点打开和关闭 高比率,导致所有可用的本地 要使用的端口和强制TCP/IP 将本地端口重新用于传出端口 连接。为了最大限度地降低风险 数据损坏,TCP/IP标准 需要一段最短的时间 连续连接之间的时间间隔 从给定的本地端点到给定的 远程端点


下面是该错误的解决方法。

您是否使用类似的方法

setsockopt(s, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on)

它允许您在没有警告的情况下重复使用同一套接字两次

在我看来,这与错误消息所显示的完全一样。。。您的端口已耗尽。这意味着大量的传出连接

默认情况下不限制tcp连接的数量(我想您只受端口数量的限制,可能是端口1024到65534)


我将开始调查为什么您在这么短的时间内看到这么多传出连接。

听起来您的连接开始失败,然后自动重试。如果重试足够快,TCP可以在整个端口范围内循环,并且所有端口都将处于等待状态(IIRC,该状态称为IIRC,我已经有一段时间没有详细调试TCP了)

首先要了解以下几点:

  • 谁发起了这些连接,它们应该用于什么
  • 为了验证连接失败率,我倾向于使用Wireshark

  • 然后,您必须寻找连接失败的原因的线索。可能是到服务器的传出连接,服务器是否已启动并正在运行?为什么服务器不接受连接?进程/线程是否负责接受死锁、阻塞或退出的连接?发起人和服务器之间的网络是否正常工作?

    是的,我在发布问题之前检查了这一点,该页面对这种情况没有太大帮助。因此,我的问题是,在“x”段时间内,我们可以拥有多少传出连接,这个数字是否可配置?如果是,在哪里以及如何进行?我发现连接失败的性能计数器太高(150000),而建立的连接小于50,这非常令人困惑。我如何区分出站连接和入站连接?我将从tcpmon和系统内部开始。。。这将让您了解是什么打开了连接(假设您不知道),性能计数器只是向您显示症状。。。您需要找到原因:)