FTP Asyn c заставляет файл быть нулевым байтом - PullRequest
0 голосов
/ 31 января 2020

Я пытаюсь использовать asyn c, ожидаю загрузки файла (файл передается в виде байтового массива). У меня есть синхронная версия, которая работает нормально, но версия asyn c создает файл на FTP-сервере, но имеет нулевые байты.

Syn c версия

public virtual void UploadFile(IFile file)
{
    // Get the object used to communicate with the server.
    var request = (FtpWebRequest)WebRequest.Create("ftp://someFtpsite.com");
    request.Method = WebRequestMethods.Ftp.UploadFile;
    request.Credentials = Credentials;
    request.ContentLength = file.FileContents.Length;

    using (Stream requestStream = request.GetRequestStream())
    {
        requestStream.Write(file.FileContents, 0, file.FileContents.Length);
    }
}

Asyn c

public virtual async Task UploadFileAsync(IKCFile file)
{
    // Get the object used to communicate with the server.
    var request = (FtpWebRequest)WebRequest.Create("ftp://someFtpsite.com");
    request.Method = WebRequestMethods.Ftp.UploadFile;
    request.Credentials = Credentials;
    request.ContentLength = file.FileContents.Length;

    using (Stream requestStream = await request.GetRequestStreamAsync())
    {
        await requestStream.WriteAsync(file.FileContents, 0, file.FileContents.Length);
        await requestStream.FlushAsync();
    }
}

1 Ответ

0 голосов
/ 31 января 2020

Методы вызывались синхронно, что вызывало проблему

...