Ошибка .NET при вызове System.Net.WebClient.UploadFileAsync

Я работаю с классом System.Net.WebClient , и я пытаюсь загрузить файл с помощью метода UploadFileAsync. Я использую Visual Studio 2010, и все мои проекты настроены на использование стандартной среды выполнения .NET 4.0, а не клиентской библиотеки.

Ниже приведен небольшой фрагмент кода, который я использую. Примерно в 90% случаев я получаю следующую ошибку:

Невозможно преобразовать объект типа 'System.ComponentModel.AsyncOperation' в тип 'UploadBitsState'.

Stack Trace:
 at System.Net.WebClient.UploadFileAsyncWriteCallback(Byte[] returnBytes, Exception exception, Object state)
 at System.Net.WebClient.UploadFileAsync(Uri address, String method, String fileName,   Object userToken)
 at FileUpload._StartUpload()

FTP-серверы, на которые я пытаюсь выполнить загрузку, являются внутренними по отношению к моему организация, но на одном работает IPSwitches WS-FTP, а на другом - FTP-сайт IIS 6.0, и я испытал ту же проблему с обоими серверами.

Я искал все остальные с аналогичной проблемой, но безрезультатно .

Фактическая строка, в которой возникает исключение, - это вызов метода _Client.UploadFileAsync .

private void _StartUpload()
{
    try
    {
        _Client = new WebClient
        {
            Credentials = _Credentials
        };
        _Client.UploadProgressChanged += ProgressChanged;
        _Client.UploadFileCompleted += UploadCompleted;
        _Client.UploadFileAsync(FileBeingUploaded, "STOR", _LocalFile, null);
    }
    catch (Exception exception)
    {
        // Methods calls removed for brevity
    }
}

private void UploadCompleted(Object sender, UploadFileCompletedEventArgs e)
{
    // Methods calls removed for brevity
}

private void ProgressChanged(object sender, UploadProgressChangedEventArgs e)
{
    // Methods calls removed for brevity
}
6
задан Peter Mortensen 14 June 2011 в 22:01
поделиться