我正在使用System.Net.WebClient
类,并且我尝试使用UploadFileAsync方法上载文件。我正在使用Visual Studio 2010,并且我的所有项目都设置为使用.NET 4.0标准运行时,而不是客户端库。调用System.Net.WebClient.UploadFileAsync时出现.NET错误
下面是我正在使用的一小段代码。大约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和其他正在运行IIS 6.0的FTP站点,我已经经历了同样的问题两台服务器。
我已经搜索了高和低为其他人与类似的问题无济于事。
发生异常的实际行是_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
}
当你同步执行它时它工作吗?您是否尝试过使用“tcpdump”或“WireShark”等数据包嗅探器观看流量? – 2011-06-14 20:13:13
我还没有尝试过同步呼叫。至于嗅探器,我没有试图去观察这些特定的错误,但是鉴于这个例外是在.Net框架中,并且是一个强制性问题,我不确定TCP流量分析会显示什么。 – 2011-06-14 20:19:32
您正在上传'_LocalFile'文件为静态文件吗?换句话说,有没有**任何**的可能性被上传时修改/更新文件的内容?我问,因为我可以在该特定情况下复制您的错误。 – 2011-06-14 20:33:05