C# 模拟http请求出现 由于系统缓冲区空间不足或队列已满,不能执行套接字上的操作[windows服务器]

系统里面用到C#模拟Http请求,上线到服务器后,发现日志中大量出现“由于系统缓冲区空间不足或队列已满,不能执行套接字上的操作” 或“通常每个套接字地址(协议/网络地址/端口)只允许使用一次”

运行 netstat -ano 发现有大量的Tcp链接,怀疑可能是服务器各种请求太多了导致的

服务器是windows server 2019。

通过查询资料得知,windows server 2019 默认的启动端口是: 49152 ,端口数是:16384,具体验证是可以在cmd命令窗口输入“netsh int ipv4 show dynamicport tcp” ,能查询出来,截图如下:

 

相当于服务器最多只能启动 16384 个端口,所以可能是这里不够。

然后cmd命令运行:

 

 netsh int ipv4 set dynamicport tcp start=29152 num=36384

这句话,将启动端口调成了 29152 ,数量 36384 ,运行后后重启服务器,再次运行“netsh int ipv4 show dynamicport tcp”

 

这样子就把端口数调成了 一共有  36384个了,重启后,应用程序日志再也没出现过那个错误了

记录一下过程,以便大家遇到相同问题的排查,也给自己记录一下后续方便自己修改其他服务器的。

posted @   LoveCoder  阅读(263)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示