我發現我的HttpWebRequest的上傳是在上傳的最後失敗...如圖this video @Screenr的Web請求/上傳失敗,在最後一刻
我的代碼是像下面
using (var reqStream = req.GetRequestStream())
{
BinaryWriter reqWriter = new BinaryWriter(reqStream);
byte[] buffer = new byte[25600]; // 20KB Buffer
int read = 0, bytesRead = 0;
while ((read = memStream.Read(buffer, 0, buffer.Length)) > 0) {
reqWriter.Write(buffer); // at the very last loop, this line causes the error
bytesRead += read;
Debug.WriteLine("Percent Done: " + ((double)bytesRead/memStream.Length * 100) + "% " + DateTime.Now);
}
我不知道你是否需要更多的代碼,我只是不想在這裏垃圾郵件代碼。下面的例外
System.Net.WebException was caught
Message=The request was aborted: The request was canceled.
Source=System
StackTrace:
at System.Net.ConnectStream.CloseInternal(Boolean internalCall, Boolean aborting)
at System.Net.ConnectStream.System.Net.ICloseEx.CloseEx(CloseExState closeState)
at System.Net.ConnectStream.Dispose(Boolean disposing)
at System.IO.Stream.Close()
at System.IO.Stream.Dispose()
at QuickImageUpload.ViewModels.ShellViewModel.UploadImage(String filename, String contentType, Byte[] image) in D:\Projects\QuickImageUpload\QuickImageUpload\ViewModels\ShellViewModel.cs:line 190
InnerException: System.IO.IOException
Message=Cannot close stream until all bytes are written.
Source=System
StackTrace:
at System.Net.ConnectStream.CloseInternal(Boolean internalCall, Boolean aborting)
InnerException:
注意內部異常「直到寫入所有字節才能關閉流」。但是我沒有關閉這個循環中的任何流嗎?
+1視頻內容:-) – 2010-11-21 09:18:17
@Darin季米特洛夫,我不擅長解釋的事情,所以我想視頻將是值得2K字......東西沒有人會打擾閱讀...哈哈 – 2010-11-21 10:51:05