Tôi thấy rằng HttpWebRequest Tải lên của tôi là thất bại vào phút cuối của tải lên ... như thể hiện trong this video @ScreenrWeb Yêu cầu/Upload Không ít Rất End
Mã của tôi là như dưới đây
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);
}
Tôi không biết nếu bạn cần thêm mã, tôi chỉ không muốn mã spam ở đây. ngoại lệ bên dưới
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:
Thông báo ngoại lệ bên trong "Không thể đóng luồng cho đến khi tất cả byte được ghi". Nhưng tôi havent gần bất kỳ dòng trong vòng này có tôi?
+1 cho nội dung video :-) –
@Darin Dimitrov, tôi không giỏi giải thích điều gì đó, vì vậy tôi nghĩ một video sẽ có giá trị 2k từ ... một cái gì đó không ai sẽ bận tâm đọc ... lol –