Я использую облако Windows Azure.
Я пытаюсь перечислить файлы с FTP-сайта. Программное обеспечение отлично работает на моем локальном компьютере, однако я получаю всплывающее окно о моем брандмауэре Windows. Можно ли с помощью облака Windows Azure добавить правило брандмауэра для веб-запроса FTP?
FTP-сервер моего клиента поддерживает только активную конфигурацию:
ВАЖНЫЙ!! Убедитесь, что вы находитесь в «активном» режиме, так как «пассивный» режим не будет работать. Активный FTP требует, чтобы брандмауэр клиента разрешал трафик выше > 1023 с портов 20 и 21. Порт 20 — это порт для передачи данных, который большинство людей забывают разрешить. Проверьте как аппаратные брандмауэры, так и программные брандмауэры, такие как (брандмауэр XP).
Вот ошибка:
System.Net.FtpClient.FtpCommandException: Cannot open data connection.
Вот мой код:
private FtpClient GetFtpClient()
{
FtpClient ftp = new FtpClient();
ftp.Host = m_FtpUrl;
ftp.DataConnectionType = FtpDataConnectionType.AutoActive;
ftp.Credentials = new NetworkCredential(m_FtpUserName, m_FtpPassword);
ftp.SetWorkingDirectory("/Orders/Archive/");
return ftp;
}
private List<string> ListFiles()
{
List<string> lines = new List<string>();
FtpClient ftp = GetFtpClient();
foreach (FtpListItem item in ftp.GetListing(ftp.GetWorkingDirectory()))
{
if (item.Type == FtpFileSystemObjectType.File)
lines.Add(item.Name);
}
return lines;
}
Я разрешил порты 20, 21 и 1023 в своих конечных точках:
Когда я использую FileZilla, вот ответ:
Status: Disconnected from server
Status: Resolving address of trade.marketplace.buy.com
Status: Connecting to 209.67.181.90:21...
Status: Connection established, waiting for welcome message...
Status: Connected
Status: Retrieving directory listing...
Command: PWD
Response: 257 "/" is current directory.
Command: TYPE I
Response: 200 Type set to I.
Command: PORT 209,67,181,90,23,189
Error: Disconnected from server: ECONNABORTED - Connection aborted