當短時間內有很多(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分鍾才可以重新使用。