我有一个永久运行的控制台程序来处理后台作业。每天,它都会通过FTP将文件上传到其他服务器。过了一会儿它将开始无法传输文件:
SocketException:System.Net.Sockets.SocketException:无法执行套接字上的操作,因为系统缺少足够的缓冲区空间或者队列已满;
重新启动服务器解决了这个问题,但它很烦人。其他答案(如this one)表明我的套接字在使用后可能没有被关闭,但我希望FtpClient.Dispose()
能够处理这个问题,因为它没有公开.Close()
方法。这是我的代码:
using (FtpClient client = new FtpClient())
{
client.Host = "ftp.host.com";
client.Credentials = new System.Net.NetworkCredential(userName: "foo", password: "bar");
client.Connect();
client.UploadFile(localPath: localPath, remotePath: remotePath, overwrite: true);
client.Disconnect();
}
我应该调查此错误的其他可能原因吗?