Chyba stahování z FTP   otázka

VB.NET

Dobrý den, používám tento kód ke stahování souborů z několika stejných zařízení. Problém, který řeším je ten, že z některých to stáhnu a z některých ne. Pokud se na ně připojím přes totalcomander, tak to stáhnu bez problému, ale z VB ne. Hodí to chybu: Vzdálený server vrátil chybu: 227 Entering Passive Mode (217,64,2,239,13,87).

Jelikož se tam přes totalcomander dostanu, předpokládám, že je chyba v kódu? Poradíte někdo, kde mám hledat chybu? Může to být v nastavení providera? Port 21 mají povolen. Děkuji.

 Private Sub stahuj(ByVal DenSt As String)

        CestaHD = "c:\\Data\" & ip & "\" & DenSt & "\"
        FileName = "int" & DenSt & ".txt"
        
        Dim uri As String = "ftp://jmeno:heslo@" & ip & "/data/" & DenSt & "/"

        Dim myStringWebResource As String = Nothing
        Dim myWebClient As New WebClient()
        
            myStringWebResource = uri + FileName

            Try
                myWebClient.DownloadFile(myStringWebResource, CestaHD + FileName)

            Catch ex As WebException
                MessageBox.Show("Chyba při stahování: " & ex.Message, Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error)
            End Try

        Next

    End Sub

nahlásit spamnahlásit spam -1 / 1 odpovědětodpovědět

Používáte "pasivní přenos" musíte použít "akticní přenos", to jsou termíny z FTP.

Příklad najdete na:

http://www.freevbcode.com/ShowCode.Asp?I...

nahlásit spamnahlásit spam 0 odpovědětodpovědět

děkuji za reakci, bohužel tím to nebude, v Total Commanderu mi to stahuje s nastavením v pasivním i aktivním přenosu. Ten příklad je poměrně rozsáhlý, budu se tím asi muset prokousat...

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Proč používáte k přenosu pomocí FTP věci, které k tomu vůbec nejsou určeny a ne System.Net.FtpWebRequest? To se pak nelze divit, že to nefunguje.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Se System.Net.FtpWebRequest se přenos choval stejně. Problém jsem vyřešil, přidal jsem jeden řádek a povolil firewall. Vše funguje. Děkuji.

ftp.UsePassive = False

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Problém byl zřejmě ve firewallu a absenci veřejné IP adresy již od začátku. V aktivním režimu FTP totiž datové spojení navazuje server směrem na klienta.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback