Я продолжаю получать исключение, когда пытаюсь выполнить FTP на свой Win 2008 Server из кода C#, используя VS2008 в качестве отладчика.Установить номер порта при использовании FtpWebRequest в C#
Мой тестовый класс выглядит следующим образом:
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);
}
}
}
Когда я выполняю код я получаю Connection Failed с FTP ошибки 227 в вызове GetRequestStream(). В исключения я могу видеть соединение не удается: 192.168.10.35:52184
Я понятия не имею, как он приходит с портом 52184. указываю в ftpServerIP, что он должен быть порт 21.
Я нашел несколько человек с теми же проблемами в google, но я не нашел хороший пример того, как это решение, и я до сих пор не понимаю, почему это происходит.
Кто-нибудь знает, как справиться с этой проблемой?
UPDATE:
Я попытался подключиться к другой FTP-счет и там все работает отлично. Поэтому я тестировал свой FTP-сервер 192.168.10.35:21, но он отлично работает в CuteFTP Pro и подобных. Это только делает его еще более странным.
Я думаю, что вижу разницу, но я не могу перейти от пассивного к активному, у кого-нибудь есть хорошее руководство для этого? –