Saída de tempo do FTP de saída / bloqueada

1

Em um servidor Web do Windows Server 2008 R2, tenho um serviço do Windows que envia arquivos para um servidor FTP externo. Na verdade, vários servidores (Google, Bing, etc.). Esta é uma aplicação .NET que utiliza as bibliotecas FTP do .NET.

Estou recebendo uma mistura dos seguintes erros:

The operation has timed out.
The remote server returned an error: (425) Can't open data connection.

O Firewall do Windows (Domínio, Privado, Público) está definido para permitir conexões de saída.

    
por Josh M. 21.06.2011 / 04:32

1 resposta

2

O FTP não é um protocolo amigável ao firewall. Ela antecede a era da Internet em que os firewalls eram comuns, por isso presume-se que esteja perfeitamente OK para ambos os lados de uma conversa abrir portas entre si. O canal COMMAND, que é o que você abre quando se conecta a um servidor FTP, é uma conexão que você inicia entre você e o servidor. O canal DATA, o que você usa para baixar coisas, é uma conexão iniciada pelo servidor FTP para você. O que é pior, a porta que seu FTP escolhe para apresentar é uma porta alta aleatória, então configurar seu firewall para permitir as portas certas é complicado.

É por isso que eles criaram o modo "Passivo" no protocolo FTP. Este é o verbo PASV. Isso informa ao servidor FTP para reverter a direção de inicialização do canal de dados; ele fornece ao cliente a porta alta para conexão, o cliente inicia a conexão e o servidor alimenta os dados através dessa conexão. Muito mais fácil de firewall.

Para as bibliotecas do .NET, você provavelmente terá mais sorte configurando o UsePassive para True.

    
por 21.06.2011 / 04:40