FTP服务器用的Serv-U,FTP连接端口设置的是2021,FTP数据端口指定了2022。
在防火墙上面将公网IP的2021和2022做了端口映射到FTP服务器的2021和2022。C#用FtpWebResponse进行连接,提示“应 PASV 命令的请求,服务器返回了一个与 FTP 连接地址不同的地址。”用FlashFXP进行连接,一切正常。请教大侠们,这种情况应该处理,需要C#连接FTP服务器进行文件传输。
在防火墙上面将公网IP的2021和2022做了端口映射到FTP服务器的2021和2022。C#用FtpWebResponse进行连接,提示“应 PASV 命令的请求,服务器返回了一个与 FTP 连接地址不同的地址。”用FlashFXP进行连接,一切正常。请教大侠们,这种情况应该处理,需要C#连接FTP服务器进行文件传输。
WebRequest.Create(new Uri(uri)); reqFTP.Credentials = new NetworkCredential(JobConst.ftpUserID, JobConst.ftpPassword); reqFTP.Method = WebRequestMethods.Ftp.UploadFile; reqFTP.UseBinary = true;
reqFTP.ContentLength = fileInf.Length;
reqFTP.EnableSsl = false;
const int buffLength = 2048;
var buff = new byte[buffLength];
FileStream fs = fileInf.OpenRead(); try
{
Stream strm = reqFTP.GetRequestStream();
int contentLen = fs.Read(buff, 0, buffLength); while (contentLen != 0)
{
strm.Write(buff, 0, contentLen);
contentLen = fs.Read(buff, 0, buffLength);
} strm.Close();
fs.Close(); return true;
有代码的请帮忙贴出来,谢谢。
具体如下:
将工程改成.net 4.0(原来是.net 2.0)就可以。还望知道其中细节的大侠给出解释,谢谢。
我用的是4.0,也是servU服务器
没有楼主说的问题
ftp访问也是通过端口映射访问的?
ftp客户端也是采用被动模式?