转自:http://blog.youkuaiyun.com/s_nuclear/article/details/25898597
C#注册表操作:http://www.cnblogs.com/txw1958/archive/2012/08/01/csharp-regidit.html
异常信息:
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上。
解决方法:
修改两个注册表:
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分钟才可以重新使用。
本文介绍了一种解决System.NET.Sockets.SocketException异常的方法,该异常通常由于系统缓冲区空间不足引起。通过调整注册表中MaxUserPort和TCPTimedWaitDelay两个值来增大用户可用端口范围并减少端口等待重用的时间。
2080

被折叠的 条评论
为什么被折叠?



