Я делаю FTP-клиент и пытаюсь загрузить файл на сервер (~ 300 МБ), но получаю следующую ошибку, когда было передано почти 100 МБ файла:
The underlying connection was closed: An unexpected error occurred on a receive.
Вот мой код:
private void UploadFile(string filepath, string filename)
{
try
{
FtpWebRequest ftp = (FtpWebRequest)FtpWebRequest.Create("ftp://" + server + "/" + filename);
//ftp.KeepAlive = false;
//ftp.Timeout = 1000000;
//ftp.UsePassive = true;
//ftp.ReadWriteTimeout = 100000;
Path.GetFileName(filepath);
ftp.Credentials = new NetworkCredential(username, password);
ftp.Method = WebRequestMethods.Ftp.UploadFile;
FileStream stream = File.OpenRead(filepath);
byte[] buffer = new byte[stream.Length];
stream.Read(buffer, 0, buffer.Length);
stream.Close();
Stream requestStream = ftp.GetRequestStream();
//requestStream.ReadTimeout = 1000000;
//requestStream.WriteTimeout = 1000000;
requestStream.Write(buffer, 0, buffer.Length);
requestStream.Close();
FtpWebResponse response = (FtpWebResponse)ftp.GetResponse();
response.Close();
}
catch (Exception ex) { CreateRunLogFile(ex.Message); }
CreateRunLogFile("Uploading of file " + filepath + " ended.");
}
Я пытаюсь использовать,
ftp.KeepAlive = false;
ftp.Timeout = 1000000;
ftp.UsePassive = true;
Но это не помогло.
FtpWebRequest ftp = (FtpWebRequest)WebRequest.Create("ftp://" + server + "/" + filename); ftp.UsePassive = true; Path.GetFileName(filepath); ftp.Credentials = new NetworkCredential(username, password); ftp.Method = WebRequestMethods.Ftp.UploadFile; ftp.Timeout = -1;
, но это не помогло. - person vasa911   schedule 09.09.2012