Я пытаюсь скопировать файлы с помощью webrequest внутри WCF. Мне нужны предложения. Есть ли лучшие способы сделать это?Скопировать файлы с использованием FTP в C#
С какими проблемами безопасности я буду сталкиваться здесь?
Могу ли я сделать это внутри WCF или сделать его отдельным лучше?
public void InsertOccured(string Name)
{
// Console.WriteLine("Insert Occured",Name);
Console.WriteLine("Insert Occured, {0}", Name);
// FTP request to download the file from FTP Location
FtpWebRequest reqFTP;
try
{
string FilePath;
string FileName = Name;
//use Switch statement to identify the ftpServerIP
FileStream outputStream = new FileStream(FilePath + "\\" + FileName, FileMode.Create);
reqFTP= (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://" + ftpserverIp + FileName));
reqFTP.Method= WebRequestMethods.Ftp.DownloadFile;
reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword);
FtpWebResponse response = (FtpWebResponse)reqFTP.GetResponse();
Stream ftpStream = response.GetResponseStream();
long cl = response.ContentLength;
int bufferSize = 2048;
int readCount;
byte[] buffer = new byte[bufferSize];
readCount = ftpStream.Read(buffer, 0, bufferSize);
while (readCount > 0)
{
outputStream.Write(buffer, 0, readCount);
readCount = ftpStream.Read(buffer, 0, bufferSize);
}
ftpStream.Close();
outputStream.Close();
response.Close();
}
catch (Exception ex)
{
Console.WriteLine(ex);
}
}
Что вы пытаетесь достичь? – Lloyd
Потоки и объекты ответа все должны находиться в блоках 'using'. –
Не обязательно достаточно, чтобы ответить на полный ответ, но я обнаружил, что когда написал собственную версию именно того, что вы делаете, используя гораздо больший размер буфера, это помогло. –