FTPWebRequest за NAT (PASV, SSL)

Кто-нибудь успешно использовал класс .Net FTPWebRequest для ftps на удаленный сервер из-за NAT? Мой код выглядит следующим образом:

 Dim URI = "ftp://" & sRemoteDir & "/"
    Dim ftp As FtpWebRequest = Nothing
  Try
   ServicePointManager.ServerCertificateValidationCallback = AddressOf ValidateServerCertificate
   ftp = CType(FtpWebRequest.Create(URI), FtpWebRequest)
   ftp.CachePolicy = New System.Net.Cache.RequestCachePolicy(System.Net.Cache.RequestCacheLevel.NoCacheNoStore)
   ftp.Credentials = New NetworkCredential(sUID, sPw)
   ftp.EnableSsl = True
   ftp.Method = WebRequestMethods.Ftp.ListDirectoryDetails

   Dim response As FtpWebResponse = CType(ftp.GetResponse(), FtpWebResponse)
   Dim responseStream As Stream = response.GetResponseStream
   Dim streamReader As New StreamReader(responseStream)
   Dim sb As New StringBuilder()
   sb.Append(streamReader.ReadToEnd)
   streamReader.Close()
   response.Close()
   Return sb.ToString()
  Catch ex As Exception
   Return (ex.Message)
  End Try

И я получаю следующее исключение:

«Невозможно прочитать данные из транспортного соединения: попытка подключения не удалась, потому что подключенная сторона не ответила должным образом через некоторое время, или установленное соединение не удалось, потому что подключенный хост не ответил».

Я знаю, что код хорош, так как он работает, если машина не находится за NAT. Любые идеи? Машина имеет статический IP-адрес, и все порты открыты для трафика к/от указанного хоста.


person IniTech    schedule 27.07.2010    source источник
comment
Ответ находится здесь код">stackoverflow.com/questions/3337673/   -  person IniTech    schedule 05.11.2010


Ответы (1)


Трудно сказать точно, не зная настройки вашего брандмауэра или ftp-сервера, но можно предположить, что вам нужно посмотреть, как настроен сервер для использования пассивного режима. Я больше всего знаком с использованием filezilla, у них есть довольно хорошее объяснение сетевых конфигураций здесь и пример того, как нужно настроить их серверное/клиентское программное обеспечение...

person anon    schedule 04.11.2010