Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
.NET Framework
FtpWebRequest FtpWebResponse debug
martedì 24 ottobre 2006 - 17.01
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
cris1771
Profilo
| Newbie
1
messaggi | Data Invio:
mar 24 ott 2006 - 17:01
Ciao a tutti
Ho un problema quando faccio il debug di un'applicazione che va ad aprire vari account FTP usando System.Net e FtpWebRequest FtpWebResponse. Ho creato una classe ClienteFtp che contiene vari metodi, ad es ListDirectory:
Public Function ListDirectory(ByVal PathDir As String) As String
'Lista delle cartelle presenti
Dim ListString As String = ""
Dim sr As StreamReader
Dim PathCompleto As String
ListDirectory = ""
sr = Nothing
ObjLog = New GenericLogClass
Try
PathDir = NormalizzaPathRemoto(PathDir)
PathCompleto = "ftp://" & HostFtp & PathDir
'Istanziare FtpWebRequest
FtpReq = CType(WebRequest.Create(PathCompleto), FtpWebRequest)
'Ftp use passive
FtpReq.UsePassive = False
'Passaggio di user e password
FtpReq.Credentials = New NetworkCredential(UserFtp, PswFtp)
'Richiesta di elenco cartelle
FtpReq.Method = WebRequestMethods.Ftp.ListDirectory
'Ottenimento risposta
FtpRes = CType(FtpReq.GetResponse(), FtpWebResponse)
sr = New StreamReader(FtpRes.GetResponseStream(), System.Text.Encoding.ASCII)
ListString = sr.ReadToEnd
If ListString.Length > 0 Then
If InStrRev(ListString, vbCrLf) = (ListString.Length - vbCrLf.ToString.Length + 1) Then
'Togliere vbCrLf dalla fine della stringa
ListString = Left(ListString, ListString.Length - (vbCrLf.ToString.Length))
End If
ObjLog.ScriviFileLog("ListDirectory" & "|" & PathDir & "|" & ListString, My.Application.Info.AssemblyName)
End If
Return ListString
Catch ex As WebException
'Scrivere il valore dell'exception nel log file
ObjLog.ScriviFileLog("ListDirectory|" & ex.ToString, My.Application.Info.AssemblyName & "_excpt")
ObjLog.ScriviFileLog("ListDirectory|" & "Errore FTP " & HostFtp & " " & UserFtp, My.Application.Info.AssemblyName)
Finally
If Not sr Is Nothing Then
sr.Close()
sr = Nothing
End If
'In ogni caso chiudere FtpRes
If Not FtpRes Is Nothing Then
FtpRes.Close()
FtpRes = Nothing
End If
FtpReq = Nothing
ObjLog = Nothing
End Try
End Function
Chiamando tale metodo dalla Sub Main() passandogli direttamente dei valori dopo aver istanziato la classe ClienteFtp ed avergli passato host, user e psw. Chiamando il metodo
ListDirectory("NomeCartellaFtp") funziona, mentre chiamando lo stesso metodo con una variabile, ad es
Dim VariabileFtp as string
VariabileFtp="NomeCartellaFtp"
...
ListDirectory(VariabileFtp)
...
si verifica un errore all'esecuzione dell'istruzione
FtpRes = CType(FtpReq.GetResponse(), FtpWebResponse)
e il messaggio dell'exception è "System.Net.WebException: Impossibile effettuare la connessione al server remoto.
in System.Net.FtpWebRequest.GetResponse()
in ExtractorDebug.ClienteFtp.ListDirectory(String PathDir)" riferimento alla riga FtpRes = CType(FtpReq.GetResponse(), FtpWebResponse)
Ho controllato il valore della variabile che è corretto.
Qualcuno può darmi qualche suggerimento per risolvere il problema?
Al momento sto eseguento il debug dell'applicazione che è di tipo Console di Windows come se fosse un'applicazione web.
Grazie
Cris
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
mer 25 ott 2006 - 10:35
Francamente credo che il problema sia altrove.
Se usi un certo nome di folder uguali nei due esperimenti non può darti due esiti diversi. Cioè il passaggio di una variabile a un costruttore a un metodo non può influire in questo modo sull'esecuzione dello stesso.
Prova a controllare bene.
Ciao
David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !