C# 在使用代理服务器对FTP上的列表目录执行GetRequest()时出现错误404

C# 在使用代理服务器对FTP上的列表目录执行GetRequest()时出现错误404,c#,proxy,ftp,http-status-code-404,getresponse,C#,Proxy,Ftp,Http Status Code 404,Getresponse,我可以提前告诉你,我的网址是好的。最近,我们移动了服务器应用程序,当前的系统有一个很好的代理 因此,我认为代理是个问题,但不知道如何解决,最奇怪的是,使用Filezilla我可以登录到FTPServer,但使用.Net代码是不可能的,我尝试更改为二进制,改为被动,手动指定代理。。。但是没有成功。它总是在GetResponse()上崩溃。另一个有趣的想法是,当我不使用wilcard(即*.csv)时,响应是带有文件列表信息的HTML 我的代码: FtpWebRequest listRequest

我可以提前告诉你,我的网址是好的。最近,我们移动了服务器应用程序,当前的系统有一个很好的代理

因此,我认为代理是个问题,但不知道如何解决,最奇怪的是,使用Filezilla我可以登录到FTPServer,但使用.Net代码是不可能的,我尝试更改为二进制,改为被动,手动指定代理。。。但是没有成功。它总是在GetResponse()上崩溃。另一个有趣的想法是,当我不使用
wilcard
(即
*.csv
)时,响应是带有文件列表信息的HTML

我的代码:

FtpWebRequest listRequest = (FtpWebRequest)WebRequest.Create(
            ftpDir == null ? Constants.FTPServer + (wildcard == null ? "" : "/" + wildcard) : Constants.MasternautFTPServer + "/" + ftpDir
            + (wildcard == null ? "" : "/" + wildcard)
            );
listRequest.Method = WebRequestMethods.Ftp.ListDirectory;
listRequest.UseBinary = true;
listRequest.UsePassive = true;
listRequest.Credentials = Credentials;
listRequest.Proxy = Proxy;
FtpWebResponse listResponse = (FtpWebResponse)listRequest.GetResponse();

Stream listResponseStream = listResponse.GetResponseStream();
StreamReader listreader = new StreamReader(listResponseStream, Encoding.UTF7);
string listOfFilesStr = listreader.ReadToEnd();
ret = new List<string>(listOfFilesStr.Split(new[] { "\r\n" },StringSplitOptions.RemoveEmptyEntries));
ret.Remove(".");
ret.Remove("..");
ret.Remove(".ftpquota");
listreader.Close();
listResponse.Close();
FtpWebRequest listRequest=(FtpWebRequest)WebRequest.Create(
ftpDir==null?常量.FTPServer+(通配符==null?”:“/”+通配符):常量.masternautftfpserver+“/”+ftpDir
+(通配符==null?”:“/”+通配符)
);
listRequest.Method=WebRequestMethods.Ftp.ListDirectory;
listRequest.useBarbinary=true;
listRequest.UseAssive=true;
凭证=凭证;
Proxy=Proxy;
FtpWebResponse listResponse=(FtpWebResponse)listRequest.GetResponse();
Stream listResponseStream=listResponse.GetResponseStream();
StreamReader listreader=新的StreamReader(listResponseStream,Encoding.UTF7);
字符串ListOfficesStr=listreader.ReadToEnd();
ret=新列表(listOfFilesStr.Split(new[]{“\r\n”},StringSplitOptions.RemoveEmptyEntries));
重新删除(“.”);
重新移除(“…”);
重新移除(“ftpquota”);
listreader.Close();
listResponse.Close();
其中,
Proxy
通过方法
WebRequest.GetSystemWebProxy()获得


所以,现在我正在研究如何解决这个问题。。。有什么帮助吗?

代理是否支持ftp?事实上是的,事实上我通过简单地将代理地址分配为ftp地址、用户分配为[ftpaddressftpuser]和ftp密码来解决这个问题。现在所有的工作都像一个魅力!!!问题在于我们公司庞大的基础设施,人与人之间的信息流不是很好…;-)谢谢我将发布带有解决方案的响应。。。