C#-WebRequestMethods.Ftp.DownloadFile不工作(超时)
大家下午好 我正在尝试从FTP服务器下载一些文件,但我不知道为什么这样做不起作用,因为以前的代码都是一样的。现在,当我运行该服务时,出现以下错误: 错误1053:服务未及时响应启动或控制请求 我尝试过其他方法,比如GetFileSize或者甚至是DeleteFile,它应该在下载文件之后执行,并且可以正常工作,但是这个方法不行,我不知道为什么。有什么想法吗?我的代码在下面,非常感谢C#-WebRequestMethods.Ftp.DownloadFile不工作(超时),ftp,download,Ftp,Download,大家下午好 我正在尝试从FTP服务器下载一些文件,但我不知道为什么这样做不起作用,因为以前的代码都是一样的。现在,当我运行该服务时,出现以下错误: 错误1053:服务未及时响应启动或控制请求 我尝试过其他方法,比如GetFileSize或者甚至是DeleteFile,它应该在下载文件之后执行,并且可以正常工作,但是这个方法不行,我不知道为什么。有什么想法吗?我的代码在下面,非常感谢 FtpWebRequest reqFTP; reqFTP = (
FtpWebRequest reqFTP;
reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(server + file));
reqFTP.Credentials = new NetworkCredential(username, password);
reqFTP.KeepAlive = true;
reqFTP.Method = WebRequestMethods.Ftp.DownloadFile;
reqFTP.UseBinary = true;
reqFTP.Proxy = null;
reqFTP.UsePassive = false;
reqFTP.Timeout = -1;
FtpWebResponse response2 = (FtpWebResponse)reqFTP.GetResponse();
Stream responseStream2 = response2.GetResponseStream();
FileStream writeStream = new FileStream(folder + file, FileMode.Create);
int Length = 2048;
Byte[] buffer = new Byte[Length];
int bytesRead = responseStream2.Read(buffer, 0, Length);
while (bytesRead > 0)
{
writeStream.Write(buffer, 0, bytesRead);
bytesRead = responseStream2.Read(buffer, 0, Length);
}
writeStream.Close();
response2.Close();
try
{
string uri2 = server + file;
Uri serverUri2 = new Uri(uri);
if (serverUri2.Scheme != Uri.UriSchemeFtp)
{
return;
}
FtpWebRequest reqFTP2;
reqFTP2 = (FtpWebRequest)FtpWebRequest.Create(new Uri(server + file));
reqFTP2.Credentials = new NetworkCredential(username, password);
reqFTP2.KeepAlive = false;
reqFTP2.Method = WebRequestMethods.Ftp.DeleteFile;
reqFTP2.UseBinary = true;
reqFTP2.Proxy = null;
reqFTP2.UsePassive = false;
FtpWebResponse response3 = (FtpWebResponse)reqFTP2.GetResponse();
Stream responseStream3 = response3.GetResponseStream();
response3.Close();
}
问题解决了。。。reqFTP.UsePassive=True;