我正在为一小组开发人员设置终端服务器。他们都将使用 SVN 客户端访问中央 SVN 存储库。我们的 SVN 存储库中的每个项目都包含大量外部资源(大约 180 个,大约 300 个)。所有外部资源都进入同一个存储库(这是我们在项目之间共享代码的方式)。
SVN UPDATE 失败,因为 Windows 报告说他的套接字用完了。在事件查看器中,我们看到以下消息:
TCP/IP failed to establish an outgoing connection because the selected local endpoint was recently used to connect to the same remote endpoint. This error typically occurs when outgoing connections are opened and closed at a high rate, causing all available local ports to be used and forcing TCP/IP to reuse a local port for an outgoing connection. To minimize the risk of data corruption, the TCP/IP standard requires a minimum time period to elapse between successive connections from a given local endpoint to a given remote endpoint.
根据 Windows 文档,终端服务器应使用大约 50000 个套接字端口,并且有大约 16000 个可用端口。但是,SVN 似乎从大约 21000 个端口开始,只有大约 200 个端口可用。
问题:
- 有没有办法告诉 SVN 使用 1 个套接字将外部设备组合在一起,而无需关闭并重新打开套接字?
- 如何配置 Windows 用于网络通信的端口?文档是否正确(端口从 50000 开始,16000 个端口可用),或者我们的观察是否正确(端口从 21000 开始,200 个端口可用)
- 关于如何解决这个问题还有其他建议吗?(目前没有选择摆脱外部因素)。
答案1
找到了。
显然,我们的 IT 部门安装了防火墙客户端,将套接字限制为每人 200 个。将套接字数量增加到 2000 个解决了这个问题。
结论:如果应用程序用完了套接字,不仅要检查 Windows 配置,还要检查本地安装的防火墙客户端软件。