FTP连接数不够用
当短时间内有很多(1K-2W)文件需要上传FTP时,异常日志如下:
System.Net.WebException: The remote server returned an error: 227 Entering Passive Mode
--->System.Net.Sockets.SocketException: 通常每个套接字地址(协议/网络地址/端口)只允许使用一次。
at ......
IIS部署的FTP解决步骤:
1.打开IIS,选择FTP站点
2.在右侧操作区,选择高级设置
3.修改“连接”下的参数
1>将服务器监听预备和最大连接数改大点,根据短时间内可能的连接数来定
2>控制通道超时和数据通道超时改小点,根据上传的文件大小和网速来定
有时候日志是这样子:
System.Net.WebException: The remote server returned an error: 227 Entering Passive Mode
--->System.Net.Sockets.SocketException: 由于系统缓冲区空间不足或队列已满,不能执行套接字上的操作。
at ......
这种情况,上述的解决方法可能起不到作用,可以尝试如下方法(摘自https://blog.csdn.net/susubuhui/article/details/52945568):
修改两个注册表:
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分钟才可以重新使用。