项目需要使用FTP服务器存储资料,使用C#语言编写的FTP类。在使用GetResponse()方法访问远程服务器获取文件夹详细信息的时候,一直报错404未找到。但是在访问本机服务器时很正常。
一开始以为是上传到远程FTP服务器文件夹的权限问题,检查后权限都是有的。后来才发现原来是电脑开了lantern,导致访问不到服务器,将与FTP服务器通信的代理Proxy设置为null后就能正常连接远程服务器了。
FtpWebRequest ftp;
ftp = (FtpWebRequest)FtpWebRequest.Create(new Uri(ftpURI));
ftp.Credentials = new NetworkCredential(ftpUserID, ftpPassword);
ftp.Method = WebRequestMethods.Ftp.ListDirectoryDetails;
ftp.UsePassive = false;
ftp.KeepAlive = false;
ftp.Proxy = null;//设置不使用代理
WebResponse response = ftp.GetResponse();//连接服务器
StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);