VS2008을 디버거로 사용하여 C# 코드에서 Win 2008 Server로 FTP를 시도 할 때 예외가 계속 발생합니다.C#에서 FtpWebRequest를 사용할 때 포트 번호 설정
내 테스트 클래스는 다음과 같습니다
public class FTP
{
private string ftpServerIP = "192.168.10.35:21";
private string ftpUserID = "Administrator";
private string ftpPassword = "XXXXXXXX";
private string uploadToFolder = "uploadtest";
public void Upload(string filename)
{
FileInfo fileInf = new FileInfo(filename);
string uri = "ftp://" + ftpServerIP + "/" + uploadToFolder + "/" + fileInf.Name;
FtpWebRequest reqFTP;
reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(uri));
reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword);
reqFTP.KeepAlive = false;
reqFTP.Method = WebRequestMethods.Ftp.UploadFile;
reqFTP.UseBinary = true;
reqFTP.ContentLength = fileInf.Length;
int buffLength = 2048;
byte[] buff = new byte[buffLength];
int contentLen;
FileStream fs = fileInf.OpenRead();
try
{
Stream strm = reqFTP.GetRequestStream();
contentLen = fs.Read(buff, 0, buffLength);
while (contentLen != 0)
{
strm.Write(buff, 0, contentLen);
contentLen = fs.Read(buff, 0, buffLength);
}
strm.Close();
fs.Close();
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
}
내가 코드를 실행하면 나는 GetRequestStream() 호출에서 FTP 오류 227으로 실패한 연결을 얻을. 내가 연결을 볼 수있는 예외에 이 실패로 : 192.168.10.35:52184
나는 내가 그것이 있어야하는 ftpServerIP에서 지정한 52184. 포트가 나오면 아무 생각이 어떻게 포트 21
나는 구글에서 같은 문제를 가진 소수의 사람들을 발견했다. 그러나 나는 이것이 어떻게 해결되는지에 대한 좋은 모범을 발견하지 못했고, 나는 아직도 그것이 일어나는 이유를 이해하지 못한다.
누구나이 문제를 해결하는 방법을 알고 있습니까?
업데이트 :
나는 다른 FTP 계정에 연결을 시도하고 거기에 모두 잘 작동합니다. 따라서 나는 192.168.10.35:21 FTP를 테스트했지만 CuteFTP Pro와 같은 것들에서 잘 작동한다. 이것은 단지 더 이상하게 만듭니다.
차이점을 알고 있지만 수동태에서 능동태로 변경하지 못했지만 누구에게도 좋은 가이드가 있습니까? –