System.ObjectDisposedException:无法访问C#asp.net 4中的已关闭文件

时间:2013-04-21 23:02:59

标签: asp.net-mvc-4 download filestream

我正在向客户端发送文件以供下载。文件可能很大(高达几GB),所以我发送它的块。这是我的代码:

//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");
            }
        }

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

1 个答案:

答案 0 :(得分:0)

我将上传的文件附加到电子邮件时遇到了同样的问题。将以下内容添加到web.config中:

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