95 messaggi dal 06 novembre 2007
Ciao ragazzi, ho un problema con l'upload di alcuni file tramite FTP.
Qui il codice:

StreamReader wStream = null;
Stream wRequestStream = null;
string wFtpPath = ftpPath + fileToSend;
FtpWebRequest wRequest = (FtpWebRequest)WebRequest.Create( wFtpPath );
wRequest.Method = WebRequestMethods.Ftp.UploadFile;
wRequest.Credentials = new NetworkCredential( userName , password );
wRequest.KeepAlive = true;
wRequest.UseBinary = true;
wRequest.UsePassive = true;

FileStream stream = File.OpenRead( fileLocalPath + fileToSend );
byte[] buffer = new byte[stream.Length];
stream.Read( buffer , 0 , buffer.Length );
stream.Close( );
Stream reqStream = wRequest.GetRequestStream( );
reqStream.Write( buffer , 0 , buffer.Length );
reqStream.Close( );


Richiamo questo metodo per circa un centinaio di file, uno dietro l'altro e a volte mi torna indietro questo messaggio:
"Errore del server remoto: (500)".
Successivamente all'upload rionomino anche il file.

L'errore non lo da per colpa del file o per il comando, ma "random". Ho provato a rieseguire l'upload dei medesimi file e lo ha dato su file diversi(in genere su 100 file lo da su 2 o 3).
Pensavo che magari può essere un problema di limite del server FTP (che sinceramente non conosco), in particolare di connessioni simultanee.
C'è un modo per verificare che abbia finito l'upload?
Ora sto comunque facendo una prova mettendo la proprietà keepAlive a false.

Grazie a tutti.
2.190 messaggi dal 04 marzo 2004
Contributi | Blog
"andrea84" <andrea84> wrote in message
news:363306@...
Ciao ragazzi, ho un problema con l'upload di alcuni file tramite FTP. Qui il codice:
StreamReader wStream = null;
Stream wRequestStream = null;
string wFtpPath = ftpPath + fileToSend;
FtpWebRequest wRequest = (FtpWebRequest)WebRequest.Create( wFtpPath ); wRequest.Method = WebRequestMethods.Ftp.UploadFile;
wRequest.Credentials = new NetworkCredential( userName , password ); wRequest.KeepAlive = true;
wRequest.UseBinary = true;
wRequest.UsePassive = true;
FileStream stream = File.OpenRead( fileLocalPath + fileToSend ); byte[] buffer = new byte[stream.Length];
stream.Read( buffer , 0 , buffer.Length );
stream.Close( );
Stream reqStream = wRequest.GetRequestStream( );
reqStream.Write( buffer , 0 , buffer.Length );
reqStream.Close( );
Richiamo questo metodo per circa un centinaio di file, uno dietro l'altro e
a volte mi torna indietro questo messaggio:
"Errore del server remoto: (500)".
Successivamente all'upload rionomino anche il file.
L'errore non lo da per colpa del file o per il comando, ma "random". Ho provato a rieseguire l'upload dei medesimi file e lo ha dato su file diversi(in genere su 100 file lo da su 2 o 3).
Pensavo che magari può essere un problema di limite del server FTP (che sinceramente non conosco), in particolare di connessioni simultanee. C'è un modo per verificare che abbia finito l'upload?
Ora sto comunque facendo una prova mettendo la proprietà keepAlive a false.
Grazie a tutti.
Il 500 è un errore generico, dovresti intercettarlo e capire cosa va in eccezione "lato server".
Se sfrutti il modello asincrono BeginGetResponse/EndGetResponse potresti gestire meglio il tutto.

Alessio Leoncini (WinRTItalia.com)
.NET Developer, Interactive Designer, UX Specialist, Trainer

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.