进服务器显示系统缓冲区空间不足,由于系统缓冲区空间不足或队列已满,不能执行套接字上的操作--解决方法...

异常信息:

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分钟才可以重新使用。

参考微软各个参数的解释:

DOS cmd命令“netstat -n”,可以查看TCP连接情况

e2d7ebee53173fc66c58d689f4d3cb5a.png

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值