我想向cassansdra存储发送大于800 MB的大文件。但我得到了 System.OutOfMemoryException 。
请找到以下代码:
HttpWebRequest request = WebRequest.Create(postUrl) as HttpWebRequest;
Stream requestStream = request.GetRequestStream();
byte[] buffer = new byte[8 * 1024];
int len;
while ((len = fileToUpload.File.Read(buffer, 0, buffer.Length)) >0)
{
requestStream.Write(buffer, 0, len);
requestStream.Flush();
}
return request.GetResponse() as HttpWebResponse;
请告诉我哪部分代码需要改进?
fileToUpload是来自UI的800 MB的确切流。
答案 0 :(得分:1)
默认情况下,使用HttpRequest上传的文件的最大大小为4 MB(4096 KB)。如果你可以访问接收端的代码,你可以在web.config中增加它,虽然我从来没有测试过800+ MB文件:)请记住,Asp.Net将在180秒后超时任何请求,以便实际上限制您可以上传的文件大小。
<httpRuntime
executionTimeout="110"
maxRequestLength="4096" />
Uploading Files in ASP.NET 2.0
恕我直言,你最好的选择是使用HttpModule以块的形式发送文件。这些可能是有意义的:
Large File Upload Using HttpHandler or HttpModule?
HttpHandler or HttpModule for file upload, large files, progress indicator?
祝你好运:)