189 messaggi dal 27 agosto 2004
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
Beh prima di tutto non è bello che carichi un array con 235mb di file perché vuol dire che starebbe tutto nella ram della tua applicazione e probabilmente questo non piace neanche alla classe FtpWebRequest.
Guarda invece ad esempio questo script http://www.winfxitalia.com/script/93/Copiare-Contenuto-Stream-Extension-Method.aspx dove leggo e scrivo a chunk, cioè a pezzetti riempendo un piccolo buffer

Ciao

Il mio blog
Homepage

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.