Я работаю с классом 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
}