2012-09-03 112 views
0

我想發送800字節以上的大文件到cassansdra storage.But我得到 System.OutOfMemoryException如何在asp.net中發送大文件到請求流

請找到下面的代碼:

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

你在哪裏得到的異常?什麼是堆棧跟蹤? – SLaks

+0

我得到了requestStream.Write(buffer,0,len)的異常;大約500 MB後完成 – user1400915

回答

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

恕我直言,你最好的選擇是使用HTTP模塊發送文件的塊。這些可能會感興趣:

Large File Upload Using HttpHandler or HttpModule?

HttpHandler or HttpModule for file upload, large files, progress indicator?

祝您好運:)的