.Net FTPS 连接在发送"CCC"命令后超时



最近几天我一直在为FTPS服务器而苦苦挣扎,该服务器需要我尝试通过.Net访问的" CCC"命令

我正在使用AlexFTPS库。我能够连接和协商AUTH TLS,我可以更改目录,但是当我尝试列出目录或下载文件时,服务器会要求"CCC"命令。当我发送"CCC"命令时,我收到"已启用 200 CCC 上下文"回复,但每当我收到服务器超时异常时,我都无法发送任何其他内容。

我做了进一步的测试:

  • WS_FTP:如果我选中"SSL身份验证后使用未加密的命令通道"选项,则可以使用
  • Filezilla :即使我将"CCC"添加为登录后命令也不起作用
  • http://www.componentpro.com/ftp.net/:有效但不是开源

任何帮助将不胜感激...对不起,我不精通FTP...

这是我的代码:

    Using Client As New AlexPilotti.FTPS.Client.FTPSClient
        AddHandler Client.LogCommand, Sub(sender As Object, args As AlexPilotti.FTPS.Common.LogCommandEventArgs)
                                          Console.WriteLine(args.CommandText)
                                      End Sub
        AddHandler Client.LogServerReply, Sub(sender As Object, args As AlexPilotti.FTPS.Common.LogServerReplyEventArgs)
                                              Console.WriteLine(args.ServerReply)
                                          End Sub
        Dim cred = New Net.NetworkCredential("login", "password")
        Client.Connect("ftps.server.com", cred, AlexPilotti.FTPS.Client.ESSLSupportMode.CredentialsRequired)
        Client.SendCustomCommand("SYST")
        Client.SendCustomCommand("PBSZ 0")
        Client.SendCustomCommand("PROT P")
        Client.SendCustomCommand("FEAT")
        Client.SendCustomCommand("PWD")
        Client.SendCustomCommand("TYPE A")
        Client.SendCustomCommand("PASV")
        Client.SendCustomCommand("CCC")
        Client.SendCustomCommand("LIST")
        Console.ReadKey()
    End Using

谢谢!

CCC("清除命令通道")是一个特殊的命令,它将连接从SSL(以AUTH TLS开头)再次降级回未加密。因此,仅仅将其声明为在已建立的控制连接上发送的自定义命令是不够的,必须像FTPS库AUTH TLS类似的处理方式进行处理,以便在命令完成后发生TLS降级。

相关内容

  • 没有找到相关文章

最新更新