SSIS, secuencia de comandos y FTP. No entiendo que pasa...

25/11/2009 - 16:23 por José Mª Fueyo | Informe spam
Hola a todos.
Como bien dice el título, no entiendo que pasa con ésta tarea. El paquete no
da ningún error, se ejecuta perfectamente, pero no sube el fichero en
cuestión al sitio ftp. Os peqo el código, a ver sí hay algo que se me escapa.

<pego>
Public Sub Main()
'
' Add your code here
'
Try
Dim Vars As Variables
Dim sArchivo(0) As String
Dim sDirRemoto As String = "/"
sArchivo(0) = "SolicitudesServicios.txt"

'*****************************************
'RECUPERO DATOS DE VARIABLES DEL PAQUETE
'Configuro la conexión. Servidor
Dim sFTPServer As String
Dts.VariableDispenser.LockOneForRead("sServidorFTP", Vars)
sFTPServer = Vars("sServidorFTP").Value.ToString()
Vars.Unlock()
'Usuario
Dim sUsFTP As String
Dts.VariableDispenser.LockOneForRead("sUsuarioFTP", Vars)
sUsFTP = Vars("sUsuarioFTP").Value.ToString()
Vars.Unlock()
'Contraseña
Dim sPwFTP As String
Dts.VariableDispenser.LockOneForRead("sPwFTP", Vars)
sPwFTP = Vars("sPwFTP").Value.ToString()
Vars.Unlock()
'Ruta local
Dim sDirLocal As String
Dts.VariableDispenser.LockOneForRead("sLocalPath", Vars)
sDirLocal = Vars("sLocalPath").Value.ToString()
Vars.Unlock()

'Recupero conexión FTP
Dim cnFTP As ConnectionManager = Dts.Connections("ftpLOOMIS")
'Configuro el FTP
cnFTP.Properties("ServerName").SetValue(cnFTP, sFTPServer)
cnFTP.Properties("ServerUserName").SetValue(cnFTP, sUsFTP)
cnFTP.Properties("ServerPassword").SetValue(cnFTP, sPwFTP)
cnFTP.Properties("ServerPort").SetValue(cnFTP, "21")
cnFTP.Properties("Timeout").SetValue(cnFTP, "0")
cnFTP.Properties("ChunkSize").SetValue(cnFTP, "1000")

'Creo el objeto ftp
Dim ftp As FtpClientConnection = New
FtpClientConnection(cnFTP.AcquireConnection(Nothing))

'Abro la conexión, envío el archivo y cierro conexión
ftp.Connect()
ftp.UsePassiveMode = False
sArchivo(0) = sDirLocal & sArchivo(0)
ftp.SendFiles(sArchivo, sDirRemoto, True, True)
ftp.Close()
Dts.TaskResult = Dts.Results.Success
Catch ex As Exception
MsgBox("Error :: " + ex.ToString)
Dts.TaskResult = Dts.Results.Failure
End Try
End Sub
</pego>

Como veis, configuro el sitio ftp a través de variables del paquete. Como os
digo, no da error, pero no sube el fichero.
A ver sí alguien me puede dar alguna idea de que es lo que pasa, por qué me
estoy volviendo loco.
¡Gracias!

Salu2,
José Mª Fueyo

Preguntas similare

Leer las respuestas

#1 José Mª Fueyo
25/11/2009 - 16:58 | Informe spam
Hola de nuevo
A título de información, las rutas configuradas en las variables son de tipo
UNC:

\\NombreServidor\c$\CarpetaDeUbicacion\

¿Podría tener que ver? gracias.

Salu2
José Mª Fueyo
Respuesta Responder a este mensaje
#2 Diego Fernández
26/11/2009 - 09:23 | Informe spam
Hola:

¿El usuario que ejecuta el paquete tiene permisos para acceder a esas rutas
UNC?

Un saludo.
Diego

"José Mª Fueyo" escribió en el mensaje de
noticias:
Hola de nuevo
A título de información, las rutas configuradas en las variables son de
tipo
UNC:

\\NombreServidor\c$\CarpetaDeUbicacion\

¿Podría tener que ver? gracias.

Salu2
José Mª Fueyo
Respuesta Responder a este mensaje
#3 José Mª Fueyo
26/11/2009 - 14:10 | Informe spam
Hola Diego, y gracias por responder
Si. Estos paquetes se ejecutan a través del Agente de SQL con un usuario que
tiene acceso a esas ubicaciones.
De todos modos, he encontrado lo que pasaba. Resulta que al conectarme al
sitio ftp, lo hacía al nodo raiz. Pero ese nodo raiz era una carpeta. Al
enviar el fichero al nodo raiz se copiaba ahí, al nodo raiz y no a la carpeta
a la cual el usuario con el que me conecto tiene asignada como carpeta
inicial. Me ha costado descubrirlo un montón de tiempo. Pero es curioso. Sí
me bajo el fichero especificando como carpeta origen "/", va de fábula. Pero
sí lo que hago es subirlo, "/" es el raiz absoluto, no la carpeta de inicio
asignada al usuario.
Gracias por vuestro tiempo.

Salu2
José Mª Fueyo

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida