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
App. WinForms / WPF .NET
Errore ftp
martedì 01 dicembre 2009 - 09.45
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
erik77
Profilo
| Senior Member
217
messaggi | Data Invio:
mar 1 dic 2009 - 09:45
Ciao ragazzi,
nella mia applicazione cerco di fare il trasferimento file tramite ftp . succede che se il file raggiunge una grandezza di circa 235Mb ricevo questo errore:
Unable to write data to the transport connection: An operation on a socket could not be performed because the system lacked sufficient buffer space or because a queue was full.
Questo è il codice :
Private Sub InviaFileFTP()
' set up request...
Dim clsRequest As System.Net.FtpWebRequest = _
DirectCast(System.Net.WebRequest.Create(ConfigurationManager.AppSettings("FTPPath").ToString.Trim + "Estrazione_IND_" + dt.Year.ToString("0000") + "_" + dt.Month.ToString("00") + ".txt"), System.Net.FtpWebRequest)
clsRequest.Credentials = New System.Net.NetworkCredential(ConfigurationManager.AppSettings("FTPUtenza").ToString.Trim, ConfigurationManager.AppSettings("FTPPSW").ToString.Trim)
clsRequest.Method = System.Net.WebRequestMethods.Ftp.UploadFile
' leggo file...
Dim bFile() As Byte = System.IO.File.ReadAllBytes(ConfigurationManager.AppSettings("FilePath").ToString.Trim + "Estrazione_IND_" + dt.Year.ToString("0000") + "_" + dt.Month.ToString("00") + ".txt")
' upload file...
Dim clsStream As System.IO.Stream = clsRequest.GetRequestStream()
clsStream.Write(bFile, 0, bFile.Length)
clsStream.Close()
clsStream.Dispose()
End Sub
grazie
Ciaooo
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
mar 1 dic 2009 - 15:49
>Ciao ragazzi,
>nella mia applicazione cerco di fare il trasferimento file tramite
>ftp . succede che se il file raggiunge una grandezza di circa
>235Mb ricevo questo errore:
>clsStream.Write(bFile, 0, bFile.Length)
>clsStream.Close()
>clsStream.Dispose()
Provo a suggerirti questa, non so se funzionerà.
Invece di fare una Write di tutto il file 230 mega, fai un ciclo e suddividi il processo di Write non so ogni ciclo fa una write di un mega, e appena dopo la Write chiamata il metodo Flush()
Chiaramente dovrai modificare gli offset sul file visto che scrivi un mega alla volta.
Ciao
David De Giacomi | <empty>
http://blogs.dotnethell.it/david/
blutek
Profilo
| Newbie
2
messaggi | Data Invio:
ven 18 dic 2009 - 12:22
salve, io ho lo stesso problema ed avevo intuito che dipende dalla dimensione del file ed anche che soluzione stava nel creare un buffer come per il download ma non ci sono riuscito.
i file fino a 60 Mb li invia tranquillo copo di che comincia a dare l'errore.
siete riusciti a risolverlo ???
blutek
Profilo
| Newbie
2
messaggi | Data Invio:
sab 13 feb 2010 - 12:04
ho risolto, ci ho messo una vita.....però è il risultato che conta.
// Codice
Dim buffer(1024) As Byte
Dim fr As FileStream = file1.Open(FileMode.Open, FileAccess.Read)
// altro codice
Dim sw As Stream = _ftpRequest.GetRequestStream()
Do While fr.Read(buffer, 0, buffer.Length) > 0
sw.Write(buffer, 0, buffer.Length)
Loop
sw.Flush()
sw.Close()
funziona benissimo con tutti i file
spero che vi possa essere utile
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
sab 13 feb 2010 - 12:06
>ho risolto, ci ho messo una vita.....però è il risultato che
>conta.
Veramente è la stessa cosa che ho scritto nella mia risposta, forse non l'hai vista ?
David De Giacomi | <empty>
http://blogs.dotnethell.it/david/
erik77
Profilo
| Senior Member
217
messaggi | Data Invio:
lun 29 mar 2010 - 12:14
grazie per l'aiuto, ho però un problema. facendo in questo modo il file di destinazione mi viene un pò più grande dell'originale in quanto sembra che scrive sempre il buffer da 1024 e probabilmente questo rimane sporco nella scrittura dell'ultimo buffer,
come si può ripulire il buffer o comunque risolvere il problema?
grazie di nuovo
Ciaooo
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 !