我正在使用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