由于系统缓冲区空间不足或队列已满,不能执行套接字上的操作--解决方法-创新互联
异常信息:
专注于为中小企业提供网站设计制作、网站设计服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业云阳免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了1000多家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。System.Net.Sockets.SocketException (0x80004005): 由于系统缓冲区空间不足或队列已满,不能执行套接字上的操作。 192.168.0.187:22
at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)
at System.Net.Sockets.Socket.Connect(EndPoint remoteEP)
at Tamir.SharpSsh.java.net.Socket..ctor(String host, Int32 port)
at Tamir.SharpSsh.jsch.Util.createSocket(String host, Int32 port, Int32 timeout)
错误描述:
服务器上部署有 WebService、处理服务:WebService有客户端轮询调用;处理服务也轮询数据库,
进行相关处理后上传文件到SFTP上。
解决方法:
检查"由于系统缓冲区空间不足或队列已满,不能执行套接字上的操作"
使用 NETSTAT -ano>C:\NET.TXT
在文件C:\NET.TXT的尾部发现
TCP 192.168.1.122:65529 192.168.1.124:53343 FIN_WAIT_2 22668
TCP 192.168.1.122:65530 192.168.1.124:53017 FIN_WAIT_2 14508
TCP 192.168.1.122:65531 192.168.1.124:64365 FIN_WAIT_2 23160
TCP 192.168.1.122:65532 192.168.1.124:58246 FIN_WAIT_2 23064
证明该服务器上套接字端口已被分配完。
修改两个注册表:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters\MaxUserPort 如果没有,则手动创建 DWord(32位) ”数值数据“改为十进制65534 或者认为适当的值。
此值表示 用户大使用的端口数量,默认为5000。
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters\TCPTimedWaitDelay 如果没有,则手动创建 DWord(32位) ”数值数据“改为十进制30 或者你认为适当的值。
此值表示一个关闭后的端口等待多久之后可以重新使用,默认为120秒,也就是2分钟才可以重新使用。
参考微软各个参数的解释:当前文章:由于系统缓冲区空间不足或队列已满,不能执行套接字上的操作--解决方法-创新互联
网站链接:http://hbruida.cn/article/eosdh.html