У меня есть обработчик ftp, который загружает файлы с ftp-сервера напрямую в браузер клиента:
public class FtpHandler : IHttpHandler
{
string usname = "";
//Connects to the FTP server and downloads the file
private byte[] downloadFile(string FTPAddress, string filename, string username, string password)
{
byte[] downloadedData = new byte[0];
try
{
//get the actual data
FtpWebRequest request = FtpWebRequest.Create(FTPAddress + "/" + filename) as FtpWebRequest;
request.Method = WebRequestMethods.Ftp.DownloadFile;
request.Credentials = new NetworkCredential(username, password);
request.UsePassive = true;
request.UseBinary = true;
request.KeepAlive = false; //close the connection when done
request.EnableSsl = false;
request.Timeout = -1;
request.ReadWriteTimeout = 60000;
//Streams
FtpWebResponse response = request.GetResponse() as FtpWebResponse;
MemoryStream memStream = new MemoryStream();
using (Stream reader = response.GetResponseStream())
{
byte[] buffer = new byte[262144];
int read;
while ((read = reader.Read(buffer, 0, buffer.Length)) > 0)
{
memStream.Write(buffer, 0, read);
}
}
//Convert the downloaded stream to a byte array
downloadedData = memStream.ToArray();
//Clean up
memStream.Close();
response.Close();
return downloadedData;
}
catch (Exception)
{
return null;
}
}
Он отлично работает с небольшими файлами, но когда я пытаюсь загрузить большой файл (например, 10 МБ), у меня появляется ошибка 504 Ошибка тайм-аута шлюза!
, пожалуйста, помогите мне решить проблему