2010-11-15 6 views
0

Voici le code:ASP.net: question FTP, en essayant de déplacer les fichiers ASPX d'un FTP à un autre

response.Close() 
ftpWebRequest = WebRequest.Create(ftp_location & dr("FILE_LOCATION").ToString.Replace("~", "")) 
ftpWebRequest.Credentials = New NetworkCredential(ftp_user, ftp_pw) 
ftpWebRequest.Method = WebRequestMethods.Ftp.UploadFile 
ftpWebRequest.UseBinary = True 


          ftpSourceRequest = WebRequest.Create(ftp_source & dr("FILE_LOCATION").ToString.Replace("~", "")) 
          ftpSourceRequest.Credentials = New NetworkCredential(ftp_user, ftp_pw) 
          ftpSourceRequest.Method = WebRequestMethods.Ftp.DownloadFile 
          ftpSourceRequest.UseBinary = True 
          Try 
           ftpSourceResponse = ftpSourceRequest.GetResponse() 
           Dim t As System.Net.FtpStatusCode = ftpSourceResponse.StatusCode 

           Dim responseStream As IO.Stream = ftpSourceResponse.GetResponseStream 
           ftpStreamWriter = New StreamWriter(ftpWebRequest.GetRequestStream()) 
           ftpStreamWriter.Write(New StreamReader(responseStream).ReadToEnd) 
           dr("STATUS") = "OK" 
           dr.AcceptChanges() 
           ftpStreamWriter.Close() 
           response.Close() 
           ftpSourceResponse.Close() 
          Catch ex4 As Exception 
           response.Close() 
           ftpSourceResponse.Close() 
          End Try 

Le problème est que lorsque je télécharge en fait le fichier de ma source, puis le transférer à mon destination. La seule chose dans le fichier est un morceau de texte qui dit "System.IO.Streamreader" Qu'est-ce que je fais mal ici?

Répondre

0

Je n'ai rien vu de particulier.

Le "System.IO.StreamReader" vous obtenez serait le résultat escompté si cette ligne:

ftpStreamWriter.Write(New StreamReader(responseStream).ReadToEnd) 

était en fait comme ceci:

ftpStreamWriter.Write(New StreamReader(responseStream)) 

Pouvez-vous vérifiez que .ReadToEnd était là dans la version que vous testez et que si compilé ok?

En supposant que la question n'est pas, ce qui se passe si vous faites:

dim sToWrite as String = New StreamReader(responseStream).ReadToEnd 
debug.write(sToWrite) 
ftpStreamWriter.Write(sToWrite) 

Contrôle cette chaîne sera au moins vous dire si vous lisez correctement les données.

Vous n'incluez pas beaucoup de définitions de type, donc j'ai dû deviner sur les types, mais vous pouvez essayer d'activer l'option strict pour voir si elle saisit des problèmes de type que vous n'avez pas remarqué.

+0

En fait, c'est exactement ce que c'était. D'une certaine manière, le ReadToEnd a été écrasé. Enquêter sur le contrôle de la source pour trouver le coupable. – jlrolin