Первый постер, давний читатель. У меня очень неприятная проблема, которая действует мне на нервы. У меня настроена программа, поэтому я прислушиваюсь к новым файлам на FTP-сервере, если есть новый файл, я его загружаю. Оттуда я работаю над некоторой информацией в файле и т. Д. Моя проблема возникает, когда я просматриваю свою последовательность во второй раз. То есть с первым загруженным мной файлом все в полном порядке, но как только новый файл обнаруживается и моя программа пытается его загрузить, моя программа просто зависает.
private static void DownloadFile(string s)
{
try
{
FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://blabla.com/"+s);
request.Method = WebRequestMethods.Ftp.DownloadFile;
request.Credentials = new NetworkCredential("xxx" ,"zzz");
using (FtpWebResponse partResponse = (FtpWebResponse)request.GetResponse())
{
Stream partReader = partResponse.GetResponseStream();
byte[] buffer = new byte[1024];
FileInfo fi = new FileInfo(path);
FileStream memStream = fi.Create();
while (true)
{
int bytesRead = partReader.Read(buffer, 0, buffer.Length - 1);
if (bytesRead == 0)
break;
memStream.Write(buffer, 0, bytesRead);
}
partResponse.Close();
memStream.Close();
}
Console.WriteLine(DateTime.Now + " file downloaded");
MoveFileToInProgress(s);
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
}
Она висит на следующей строке: using (FtpWebResponse partResponse = (FtpWebResponse) request.GetResponse ())
Причина, по которой мой метод статичен, заключается в том, что я просто запускаю его в другом проекте, чтобы проверить его. Мой вопрос: почему он только умирает по второму файлу? Я уже несколько часов смотрю на себя слепым!