以下のコードを考慮してください。小さいファイル (50 MB 未満) では非常にうまく機能しますが、100 MB 以上のファイルではクラッシュしました。次のエラーが発生します。
「トランスポート接続にデータを書き込めません: システムに十分なバッファ領域がなかったか、キューがいっぱいだったため、ソケットに対する操作を実行できませんでした。」
'Method
Private Sub Upload(ByVal source As String, ByVal target As String, ByVal credential As NetworkCredential)
Dim request As FtpWebRequest = DirectCast(WebRequest.Create(target), FtpWebRequest)
request.Method = WebRequestMethods.Ftp.UploadFile
request.Credentials = credential
request.Proxy = Nothing
Dim reader As New FileStream(source, FileMode.Open)
Dim buffer(Convert.ToInt32(reader.Length - 1)) As Byte
reader.Read(buffer, 0, buffer.Length)
reader.Close()
request.ContentLength = buffer.Length
Dim stream As Stream = request.GetRequestStream
stream.Write(buffer, 0, buffer.Length)
stream.Close()
Dim response As FtpWebResponse = DirectCast(request.GetResponse, FtpWebResponse)
response.Close()
End Sub
'Calling Function
Dim credential As New NetworkCredential("FTPUserName", "FTPPassword")
Upload(FileName.Zip, "ftp://abc.com/Location/FileName.Zip", credential)
私が欠けているものを教えてください。