WinSCP FTPS inicia sessão através do proxy mas não consegue listar ficheiros
Verifique a ligação de dados passiva e também a ligação de controlo quando usar HTTP CONNECT para FTPS.
Um início de sessão FTPS prova que a ligação de controlo funcionou. Uma listagem de diretório precisa de outra ligação, por isso um proxy pode permitir o início de sessão e bloquear o passo seguinte.
Para um servidor FTPS explícito, configure a rota de controlo e o modo passivo com WinSCP .NET:
var options = new WinSCP.SessionOptions
{
Protocol = WinSCP.Protocol.Ftp,
HostName = "ftp.example.net",
PortNumber = 21,
UserName = ftpUser,
Password = ftpPassword,
FtpSecure = WinSCP.FtpSecure.Explicit,
FtpMode = WinSCP.FtpMode.Passive
};
options.AddRawSettings("ProxyMethod", "3");
options.AddRawSettings("ProxyHost", "proxy.example.net");
options.AddRawSettings("ProxyPort", "8080");A definição ProxyMethod com o valor 3 seleciona HTTP CONNECT. Abra estas opções através do ciclo de vida normal do WinSCP Session na aplicação e acrescente as definições em bruto ProxyUsername e ProxyPassword quando o intermediário exigir autenticação.
Siga a falha da listagem
Examine o registo da sessão para encontrar o ponto final de dados passivo negociado e o respetivo erro de ligação. O proxy tem de permitir esse destino e essa porta, bem como o ponto final de controlo FTP. Por isso, uma regra que só permita CONNECT para a porta de controlo pode aceitar o início de sessão e rejeitar a listagem.
Alterar apenas a porta de controlo não corrige um caminho de dados bloqueado. Use o ponto final de dados registado ao verificar a política de rede.
Este exemplo inicia FTPS explícito na porta 21 e negoceia TLS. Para um ponto final FTPS implícito, use o modo FtpSecure correspondente e a porta do servidor. Em ambos os casos, use o nome de anfitrião TLS real do servidor e a configuração de validação de certificados.