从C#.NetCore API返回FileStreamResult时无法访问关闭的Stream

问题描述 投票:0回答:1

C#.Net-Core 3.1

在我的C#API中,我在FileStreamResult中返回pdf文件,效果很好。

通常,我在使用中包装流,但是此代码失败Cannot access a closed Stream

using (MemoryStream stream = new MemoryStream(byteArray))
{
    fileStreamResult = new FileStreamResult(stream, "application/pdf");
}
return (ActionResult)fileStreamResult;

所以我需要这样做:

var stream = new MemoryStream(byteArray);
fileStreamResult = new FileStreamResult(stream, "application/pdf");
return (ActionResult)fileStreamResult;

我假设流需要保持打开状态,我应该担心内存泄漏还是IIS关闭流?有更好的选择吗?

c# .net-core using memorystream filestreamresult
1个回答
0
投票

为什么使用块将return (ActionResult)fileStreamResult;保留在外面?

© www.soinside.com 2019 - 2024. All rights reserved.