Isso foi postado originalmente no StackOverflow, mas como o código funciona e isso é provavelmente um problema de rede / firewall, imaginei que o faria aqui.
Como o título indica, eu posso conectar a outra máquina do meu servidor via FileZilla Client, mas não consigo via código (.Net - FTPWebRequest)
Eu sei que o código é bom, já que funciona em outra máquina. A máquina em particular com a qual estou tendo problemas está por trás de um NAT, mas o SA abriu todas as portas para o tráfego do host com o qual estamos tentando conversar.
Alguma sugestão - perdi algo óbvio?
A exceção que recebo da tentativa de conexão é:
"Unable to read data from the transport connection: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond."
E os registros da máquina que estamos tentando conectar mostram:
7/26/2010 12:40:23 PM - (not logged in) (xx.xx.xxx.xxx)> Connected, sending welcome message...
7/26/2010 12:40:23 PM - (not logged in) (xx.xx.xxx.xxx)> 220-FileZilla Server version 0.9.32 beta
7/26/2010 12:40:23 PM - (not logged in) (xx.xx.xxx.xxx)> 220 ftp.xxxxxxxxxx.com
7/26/2010 12:40:23 PM - (not logged in) (xx.xx.xxx.xxx)> AUTH TLS
7/26/2010 12:40:24 PM - (not logged in) (xx.xx.xxx.xxx)> 234 Using authentication type TLS
7/26/2010 12:41:24 PM - (not logged in) (xx.xx.xxx.xxx)> 421 Login time exceeded. Closing control connection.
7/26/2010 12:41:24 PM - (not logged in) (xx.xx.xxx.xxx)> disconnected.
EDITAR:
Eu estou usando o modo passivo para o código e a conexão do filezilla. Conforme solicitado, aqui está um log de uma conexão de ftps bem-sucedida (LIST) do código (em outra máquina):
7/26/2010 12:45:03 PM - (not
logged in) (xx.xx.xxx.xxx)>
Connected, sending welcome message...
7/26/2010 12:45:03 PM - (not
logged in) (xx.xx.xxx.xxx)>
220-FileZilla Server version 0.9.32
beta
7/26/2010 12:45:03 PM - (not
logged in) (xx.xx.xxx.xxx)> 220
ftp.xxxxxxxxxx.com
7/26/2010 12:45:03 PM - (not
logged in) (xx.xx.xxx.xxx)> AUTH TLS
7/26/2010 12:45:04 PM - (not
logged in) (xx.xx.xxx.xxx)> 234 Using
authentication type TLS
7/26/2010 12:45:04 PM - (not
logged in) (xx.xx.xxx.xxx)> SSL
connection established
7/26/2010 12:45:04 PM - (not
logged in) (xx.xx.xxx.xxx)> PBSZ 0
7/26/2010 12:45:04 PM - (not
logged in) (xx.xx.xxx.xxx)> 200
PBSZ=0
7/26/2010 12:45:05 PM - (not
logged in) (xx.xx.xxx.xxx)> PROT P
7/26/2010 12:45:05 PM - (not
logged in) (xx.xx.xxx.xxx)> 200
Protection level set to P
7/26/2010 12:45:05 PM - (not
logged in) (xx.xx.xxx.xxx)> USER username
7/26/2010 12:45:05 PM - (not
logged in) (xx.xx.xxx.xxx)> 331
Password required for username
7/26/2010 12:45:05 PM - (not
logged in) (xx.xx.xxx.xxx)> PASS xxxxxxxxxx
7/26/2010 12:45:05 PM - username
(xx.xx.xxx.xxx)> 230 Logged on
7/26/2010 12:45:05 PM - username
(xx.xx.xxx.xxx)> OPTS utf8 on
7/26/2010 12:45:05 PM - username
(xx.xx.xxx.xxx)> 200 UTF8 mode
enabled
7/26/2010 12:45:05 PM - username
(xx.xx.xxx.xxx)> PWD
7/26/2010 12:45:05 PM - username
(xx.xx.xxx.xxx)> 257 "/" is current
directory.
7/26/2010 12:45:05 PM - username
(xx.xx.xxx.xxx)> CWD /
7/26/2010 12:45:05 PM - username
(xx.xx.xxx.xxx)> 250 CWD successful.
"/" is current directory.
7/26/2010 12:45:05 PM - username
(xx.xx.xxx.xxx)> TYPE I
7/26/2010 12:45:05 PM - username
(xx.xx.xxx.xxx)> 200 Type set to I
7/26/2010 12:45:05 PM - username
(xx.xx.xxx.xxx)> PASV
7/26/2010 12:45:05 PM - username
(xx.xx.xxx.xxx)> 227 Entering Passive
Mode (xx,xx,xxx,xxx,xxx,xxx)
7/26/2010 12:45:05 PM - username
(xx.xx.xxx.xxx)> LIST
7/26/2010 12:45:05 PM - username
(xx.xx.xxx.xxx)> 150 Connection
accepted
7/26/2010 12:45:05 PM - username
(xx.xx.xxx.xxx)> SSL connection for
data connection established
7/26/2010 12:45:05 PM - username
(xx.xx.xxx.xxx)> 226 Transfer OK
7/26/2010 12:46:43 PM - username
(xx.xx.xxx.xxx)> disconnected.
EDIT - e aqui está um log de uma tentativa bem-sucedida da mesma máquina usando o cliente FileZilla
7/28/2010 10:01:53 AM - (não autenticado) (xx.xx.xxx.xxx) > Conectado, enviando mensagem de boas vindas ...
7/28/2010 10:01:53 AM - (não autenticado) (xx.xx.xxx.xxx) > 220-FileZilla Server versão 0.9.32 beta
7/28/2010 10:01:53 AM - (não autenticado) (xx.xx.xxx.xxx) > 220 ftp.xxxxxxxx.com
7/28/2010 10:01:53 AM - (não autenticado) (xx.xx.xxx.xxx) > Conexão SSL estabelecida
7/28/2010 10:01:53 AM - (não autenticado) (xx.xx.xxx.xxx) > USER username
7/28/2010 10:01:53 AM - (não autenticado) (xx.xx.xxx.xxx) > 331 Senha requerida para o nome de usuário
7/28/2010 10:01:53 AM - (não autenticado) (xx.xx.xxx.xxx) > PASSE ********
7/28/2010 10:01:53 AM - nome de usuário (xx.xx.xxx.xxx) > 230 Conectado
7/28/2010 10:01:53 AM - nome de usuário (xx.xx.xxx.xxx) > SYST
7/28/2010 10:01:53 AM - nome de usuário (xx.xx.xxx.xxx) > 215 UNIX emulado pelo FileZilla
7/28/2010 10:01:53 AM - nome de usuário (xx.xx.xxx.xxx) > FEAT
7/28/2010 10:01:53 AM - nome de usuário (xx.xx.xxx.xxx) > 211-características:
7/28/2010 10:01:53 AM - nome de usuário (xx.xx.xxx.xxx) > MDTM
7/28/2010 10:01:53 AM - nome de usuário (xx.xx.xxx.xxx) > REST STREAM
7/28/2010 10:01:53 AM - nome de usuário (xx.xx.xxx.xxx) > TAMANHO
7/28/2010 10:01:53 AM - nome de usuário (xx.xx.xxx.xxx) > Tipo MLST *; tamanho *; modificar *;
7/28/2010 10:01:53 AM - nome de usuário (xx.xx.xxx.xxx) > MLSD
7/28/2010 10:01:53 AM - nome de usuário (xx.xx.xxx.xxx) > AUTH SSL
7/28/2010 10:01:53 AM - nome de usuário (xx.xx.xxx.xxx) > AUTH TLS
7/28/2010 10:01:53 AM - nome de usuário (xx.xx.xxx.xxx) > UTF8
7/28/2010 10:01:53 AM - nome de usuário (xx.xx.xxx.xxx) > CLNT
7/28/2010 10:01:53 AM - nome de usuário (xx.xx.xxx.xxx) > MFMT
7/28/2010 10:01:53 AM - nome de usuário (xx.xx.xxx.xxx) > 211 Fim
7/28/2010 10:01:53 AM - nome de usuário (xx.xx.xxx.xxx) > PBSZ 0
7/28/2010 10:01:53 AM - nome de usuário (xx.xx.xxx.xxx) > 200 PBSZ = 0
7/28/2010 10:01:53 AM - nome de usuário (xx.xx.xxx.xxx) > PROT P
7/28/2010 10:01:53 AM - nome de usuário (xx.xx.xxx.xxx) > 200 Nível de proteção definido para P
7/28/2010 10:01:53 AM - nome de usuário (xx.xx.xxx.xxx) > PWD
7/28/2010 10:01:53 AM - nome de usuário (xx.xx.xxx.xxx) > 257 "/" é o diretório atual.
7/28/2010 10:01:53 AM - nome de usuário (xx.xx.xxx.xxx) > TIPO I
7/28/2010 10:01:53 AM - nome de usuário (xx.xx.xxx.xxx) > 200 Tipo definido como I
7/28/2010 10:01:53 AM - nome de usuário (xx.xx.xxx.xxx) > PASV
7/28/2010 10:01:53 AM - nome de usuário (xx.xx.xxx.xxx) > 227 Inserindo o Modo Passivo (xx, xx, xxx, xxx, xxx, xxx)
7/28/2010 10:01:53 AM - nome de usuário (xx.xx.xxx.xxx) > MLSD
7/28/2010 10:01:53 AM - nome de usuário (xx.xx.xxx.xxx) > 150 Conexão aceita
7/28/2010 10:01:53 AM - nome de usuário (xx.xx.xxx.xxx) > Conexão SSL para conexão de dados estabelecida
7/28/2010 10:01:53 AM - nome de usuário (xx.xx.xxx.xxx) > 226 Transferência OK
7/28/2010 10:02:18 AM - nome de usuário (xx.xx.xxx.xxx) > desconectado.