Estoy trabajando con la clase System.Net.WebClient
y estoy intentando subir un archivo utilizando el método UploadFileAsync. Estoy usando Visual Studio 2010, y todos mis proyectos están configurados para usar el tiempo de ejecución estándar .NET 4.0, no la biblioteca del cliente..NET error al llamar a System.Net.WebClient.UploadFileAsync
A continuación se muestra una pequeña sección del código que estoy usando. Aproximadamente el 90% del tiempo aparece el siguiente error:
No se puede convertir el objeto del tipo 'System.ComponentModel.AsyncOperation' para escribir '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()
Los servidores FTP que estoy tratando de subir a son internas a mi organización, pero se está ejecutando alguna IPSwitches WS-FTP y el otro se está ejecutando un sitio FTP de IIS 6.0, y he experimentado el mismo problema con ambos servidores.
He buscado alto y bajo para otros con un problema similar en vano.
La línea real en la que se produce la excepción es la llamada al método _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
}
¿Funciona cuando lo ejecuta sincrónicamente? ¿Has intentado ver el tráfico con un detector de paquetes como 'tcpdump' o' WireShark'? –
No he intentado una llamada síncrona. En cuanto a un sniffer, no he intentado ver estos errores específicos, pero dado que la excepción está dentro del marco .Net y es un problema de conversión, no estoy seguro de qué mostraría el análisis de tráfico TCP. –
¿El archivo que está cargando '_LocalFile' es un archivo estático? En otras palabras, ¿hay ** alguna ** posibilidad de que el contenido del archivo se modifique/actualice mientras se carga? Lo pregunto porque puedo duplicar tu error en ese escenario en particular. –