Page 1 of 2

Ftp y Windows Server 2012 R2

Posted: Tue Dec 05, 2017 12:54 pm
by Antonio Mart.
Hola,

Me estoy rompiendo la cabeza.
Resulta que en mi oficina las primitivas de fwh para Ftp me funcionan muy bien.
No ocurre así en casa del cliente, (Windows Server 2012 R2) donde no consigo que envien información. He probado con Filezilla y SI transmite a través de Ftp.

¿ Alguna idea de qué puede estar pasando ? ¿ Algún problema de las rutinas Ftp de Fwh en Windows 2012 Server R2 ? ¿ WinInet.dll buggy ?

Gracias

Re: Ftp y Windows Server 2012 R2

Posted: Tue Dec 05, 2017 1:21 pm
by karinha
El mas probable, és que el Ftp del cliente, no acepta el Ftp de FWH por algun motivo que desconozco, acá en Brasil acontece bastante esto.

Saludos.

Re: Ftp y Windows Server 2012 R2

Posted: Tue Dec 05, 2017 2:45 pm
by cmsoft
Yo utilizo estas funciones para subir archivos por FTP y me funcionan bien actualmente.

Code: Select all

     IF !ConectaServerFTP("xxx.sitio.com","user","password",@oFtp)     
        MsgStop("No pudo conectar")
     ENDIF 
     SubeArchivoFtp(cArchivo,"xxx/public/carpeta-destino/destino.xxx",oFtp)
*****************************************
*** Conectar al servidor FTP
FUNCTION ConectaServerFTP(cNomSer,cNomUsr,cClaUsr,oFtp)
LOCAL cServer, cUser, cPassword, oUrl, cUrl
cServer := cNomSer 
cUser := cNomUsr
cPassword := cClaUsr 
cUrl := "ftp://" + cUser + ":" + cPassword + "@" + cServer
cUser:= strtran(cUser,"@","&at;")
oUrl := tUrl():New( cUrl )
IF At( "@", cUser ) > 0
   oUrl:cUserID := strtran(cUser,"&at;","@")
   oUrl:cPassword := cPassword
ENDIF
oFTP := tIPClientFtp():New( oUrl, .T. )
oFTP:nConnTimeout := 20000
oFTP:bUsePasv := .T.
oFtp:bTrace := {|| .t.}
oFTP:Open( )
IF oFtp <> NIL
   RETURN .T.
ENDIF
RETURN .F.

******************************************************************************


FUNCTION SubeArchivoFtp(cFileOri,cFileDes,oFtp)
oFtp:Dele( cFileDes )
oFtp:UpLoadFile( cFileOri, cFileDes )
RETURN .T.
 

Re: Ftp y Windows Server 2012 R2

Posted: Tue Dec 05, 2017 4:34 pm
by Antonio Mart.
Karinha,

El cliente es el programa Fwh.

CmSoft,

Lo que propones es cambiar a la clase tIPClientFtp. Si no quedara más remedio lo haría, pero no me gusta la idea. Tenía mis propias clases Ftp basadas en la clase TFtp de Fwh.

Gracias a ambos por contestar

---

Lo curioso es que Filezilla en modo Ftp Simple si funciona en el Windows 2012 Server R2.
Y como dije, lo curioso es que acá en la oficina, con otro Windows naturalmente, si funciona perfectamente.

Asi que creo que el problema puede venir por incompatibilidad fwh/WinInet.dll - Windows 2012 Server R2

¿ Alguna idea más ?

Re: Ftp y Windows Server 2012 R2

Posted: Tue Dec 05, 2017 5:41 pm
by Carlos Mora
Antonio,
FTP es un protocolo muy estandar, no hay riesgos de "incompatibilidad", si puede ser de configuración. ¿Desde donde te estas conectando? ¿A que servidor? ¿Has probado el modo pasivo? ¿Has registrado en el firewall del Windows Server tu programa para que no lo bloquee?

Un saludo

Re: Ftp y Windows Server 2012 R2

Posted: Wed Dec 06, 2017 4:13 pm
by hectorpapiri
Proba modificando la clase TFTP con esto y fijate.

Code: Select all

#define INTERNET_FLAG_PASSIVE       0x08000000  // used for FTP connections  // AD2K


// AD2K (Puerto y Modo Pasivo)
METHOD New( cFTPSite, oInternet, cUserName, cPassword, nPort, lPassiveMode ) CLASS TFTP

   DEFAULT nPort := FTP_PORT
   DEFAULT lPassiveMode := .F.

   ::oInternet = oInternet
   ::cSite     = cFTPSite
   ::cUserName = cUserName
   ::cPassword = cPassword

   if oInternet:hSession != nil
      ::hFTP = InternetConnect( oInternet:hSession, cFTPSite, nPort /*FTP_PORT*/,;
                                ::cUserName, ::cPassword,;
                                INTERNET_SERVICE_FTP, iif(lPassiveMode, INTERNET_FLAG_PASSIVE, 0), 0 )
      if GetLastError() == 0
         aAdd( oInternet:aFTPs, Self )
      else
         ::hFTP := NIL
      endif
   endif

return Self

 
Depues probá pasandole el parámetro .T.

Saludos

Re: Ftp y Windows Server 2012 R2

Posted: Mon Dec 11, 2017 8:42 am
by Antonio Mart.
Buenos días,
Antonio,
FTP es un protocolo muy estandar, no hay riesgos de "incompatibilidad", si puede ser de configuración. ¿Desde donde te estas conectando? ¿A que servidor? ¿Has probado el modo pasivo? ¿Has registrado en el firewall del Windows Server tu programa para que no lo bloquee?
Carlos,

Me estoy conectando a un VPS. Desde mi oficina funciona perfecto, sin ningun problema (Win XP). Desde la oficina del cliente no funciona (Windows Server 2012 R2)
Lo estoy probando todo el tiempo en modo pasivo. Los informaticos del hard me dicen que han configurado todo (firewall) para permitir los accesos a Ftp y de hecho la subida y bajada de archivos CON FILEZILLA desde la oficina del cliente funciona sin problemas. Lo que no funciona alli es mi programa fwh.

---

hectorpapiri,

Gracias por su respuesta. Ya tenia esas modificaciones y utilizando el modo pasivo.

---

¿ Alguna idea más pls ?

Re: Ftp y Windows Server 2012 R2

Posted: Mon Dec 11, 2017 9:43 am
by Carlos Mora
Antonio,

No soy experto en Windows Server, pero un problema muy frecuente es que no se añade la aplicación (el 'exe') en la lista blanca del firewall. Eso lo tenía que hacer SIEMPRE en un programa que usaba FTP para enviar copias de seguridad de los ficheros a un servidor.
FTP es algo bastante conocido, los problemas suelen venir por parte de la configuración. Filezilla te funciona porque el mismo instalador registra el programa en el firewall.

Pide al técnico que te muestre la lista blanca de programas en el firewall.

en windows 10 eso está en :

Panel de control\Todos los elementos de Panel de control\Firewall de Windows\Aplicaciones permitidas

Re: Ftp y Windows Server 2012 R2

Posted: Mon Dec 11, 2017 10:31 am
by cnavarro
Aprovechando el hilo
Qué clase o herramienta es la que utilizáis para realizar las conexiones FTP con Fivewin?
Quiero incluir algo de ésto en FivEdit.

Re: Ftp y Windows Server 2012 R2

Posted: Mon Dec 11, 2017 10:38 am
by Antonio Mart.
Carlos Mora wrote:Antonio,

No soy experto en Windows Server, pero un problema muy frecuente es que no se añade la aplicación (el 'exe') en la lista blanca del firewall. Eso lo tenía que hacer SIEMPRE en un programa que usaba FTP para enviar copias de seguridad de los ficheros a un servidor.
FTP es algo bastante conocido, los problemas suelen venir por parte de la configuración. Filezilla te funciona porque el mismo instalador registra el programa en el firewall.

Pide al técnico que te muestre la lista blanca de programas en el firewall.

en windows 10 eso está en :

Panel de control\Todos los elementos de Panel de control\Firewall de Windows\Aplicaciones permitidas
Carlos,

Se lo dije escribí al cliente que se lo dijera al técnico hard. Quizá me ha faltado insistir en lo de la lista de .exes que le pasé.
Voy a hacer lo que dices. Que me muestre mis programas en la lista blanca del firewall.
Agradezco tus anotaciones y consejos.

Re: Ftp y Windows Server 2012 R2

Posted: Mon Dec 11, 2017 10:44 am
by Antonio Mart.
cnavarro wrote:Aprovechando el hilo
Qué clase o herramienta es la que utilizáis para realizar las conexiones FTP con Fivewin?
Quiero incluir algo de ésto en FivEdit.
Utilizo la clase TFtp, pero no la uso directamente sino que creé otra intermedia para controlar el flujo de subida y bajada de cada archvio, que básicamente son pequeñas mejoras a metodos upFile y downFile que pillé por el foro.

En todo caso, la clase TFtp se ha quedado obsoleta en el sentido de que es un protocolo que no es seguro y es rechazado muchas veces por ello.
Así tenemos Ftp (simple) que es el que tiene Fwh, Ftps (Como Ftp pero con un túnel de seguridad) y SFtp (que no tiene nada que ver con el protocolo Ftp salvo el nombre.)

En este mismo hilo un compañero (cmSoft) ha sugerido usar tIPClientFtp que no sé realmente qué protocolo usa.

Re: Ftp y Windows Server 2012 R2

Posted: Mon Dec 11, 2017 10:56 am
by cnavarro
Ya, también había pensado en ello y hacerlo a mano como dices que hace el compañero, pero pensaba que había alguna clase actualizada que se pudiera utilizar, y si no pues veremos lo que hago si no hay nada standard

Re: Ftp y Windows Server 2012 R2

Posted: Mon Dec 11, 2017 4:26 pm
by Carlos Mora
Cristobal,
En su momento usé las provistas por FW, pero si tuviera que hacerlo de nuevo trataría de ir por el camino de CURL, que te garantiza que se mantiene actualizado, maneja bien todos los protocolos, y es bastante sencillo. De hecho en el contrib de hbcurl los test se hacen con FTP, asi es que seguramente funciona correctamente.

Y yo se que a ti CURL se te da bien :)

Re: Ftp y Windows Server 2012 R2

Posted: Mon Dec 11, 2017 4:35 pm
by cnavarro
Carlos, justamente en eso estaba pensando, me has leído el pensamiento
A ver si tengo un rato y trato de hacer una clase o utilidad que me sirva
Ya te preguntaré si tengo alguna duda

Re: Ftp y Windows Server 2012 R2

Posted: Wed Dec 13, 2017 6:29 am
by Enrrique Vertiz
Saludos Antonio

Pues mi respuesta no te da ninguna solucion, pero si me sumo a tu problema, simplemente TipClientFtp() desde varios FTP mios me deja bajar sin problemas, pero desde un FTP en el server de un cliente mio, no me deja bajar, pero si le doy aFiles := oFTP:ListFiles( "*.*") me muestra que estan los archivos, pero al dar oFtp:DownLoadFile( cFileDown ) simplemente retorna .F., pero OJO solo en el FTP de mi cliente, en los 2 mios, externos por cierto si me baja sin problemas, pero si uso la clase qFTPClient() SI baja sin problemas, los ubica y los baja.

Si alguien sabe porque con una clase SI funciona y con otra NO seria ideal ...