所谓的潇洒

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

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

posted on   所谓的潇洒  阅读(1834)  评论(0编辑  收藏  举报

编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示