2013-04-21 90 views
0

我正在向客户端发送文件以供下载。文件可能很大(高达几GB),所以我以大块的形式发送它。这是我的代码:System.ObjectDisposedException:无法访问C#asp.net中的已关闭文件4

//code to get data in resp stream. 
     using (Stream inputStream = resp.GetResponseStream()) 
     { 
      if (System.IO.File.Exists(TargetFile)) 
      { 
       System.IO.File.Delete(TargetFile); 
      } 
      using (FileStream fs = System.IO.File.Open(TargetFile, FileMode.Create, FileAccess.ReadWrite)) 
      { 
       byte[] buffer = new byte[SegmentSize]; 
       int bytesRead; 
       while ((bytesRead = inputStream.Read(buffer, 0, SegmentSize)) > 0) 
       { 
        fs.Write(buffer,0,bytesRead); 
       } 
       Response.AddHeader("Content-Disposition", "Attachment;filename=targetFileName.pdf"); 
       return File(fs, "application/pdf"); 
      } 
     } 

当我点击链接下载它给了我上面的错误。我尝试着不返回任何东西,在这种情况下,它会下载文件,但文件的大小为零。错误在最后一行。

+0

退房http://stackoverflow.com/questions/1584785/using-and-stream – 2013-08-21 23:40:25

回答

0

我在将上传的文件附加到电子邮件时遇到同样的问题。添加下面的web.config工作:

<system.web> 
    <httpRuntime executionTimeout="90" maxRequestLength="20000" useFullyQualifiedRedirectUrl="false" requestLengthDiskThreshold="8192"/> 
</system.web> 
相关问题