无法访问已关闭的文件System.ObjectDisposedException

时间:2017-06-19 10:19:22

标签: c# asp.net asp.net-web-api asp.net-web-api2 idisposable

我正在尝试从WebAPI Rest Service读取并返回文件内容,我在using ...块中返回响应。我收到System.ObjectDisposedException。有人可以帮我这个吗?

using (var fileStream = new FileStream(LocalFilePath, FileMode.Open))
            {
                response.Content = new StreamContent(fileStream);
                response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment") { FileName = "MaxRecords.xls" };
                response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/vnd.ms-excel");
                return response;
            }

2 个答案:

答案 0 :(得分:0)

您需要创建一个流推送对象,根据需要在线上生成文件位。我自己建了一个,但我知道这些日子里有一个 - 称为PushStreamContent。这是一个非常简单的示例,does something similar符合您的需求。

问题是,客户端需要关闭流,或者PushStreamContent需要在写入所有字节时关闭它,但是使用using块,您将立即关闭它当你发送。

答案 1 :(得分:0)