Asp.net core 防止FileResult分块响应

Asp.net core 防止FileResult分块响应,asp.net-core,chunked-encoding,kestrel-http-server,fileresult,Asp.net Core,Chunked Encoding,Kestrel Http Server,Fileresult,我有一个ASP.NET Core 1.2应用程序,它向用户发送一个文件。为此,我使用FileResult。我的代码如下所示: return PhysicalFile(Path.GetFullPath(filePath), QMimeTypeMap.GetMimeType(Path.GetExtension(file.Name))); 我曾尝试使用响应缓冲,如中所示,但它对我不起作用 这将正确返回文件,但使用传输编码:Chunked,这会导致下载以“不确定”的形式出现,即没有进度条。我曾尝试自己

我有一个ASP.NET Core 1.2应用程序,它向用户发送一个文件。为此,我使用
FileResult
。我的代码如下所示:

return PhysicalFile(Path.GetFullPath(filePath), QMimeTypeMap.GetMimeType(Path.GetExtension(file.Name)));
我曾尝试使用响应缓冲,如中所示,但它对我不起作用

这将正确返回文件,但使用
传输编码:Chunked
,这会导致下载以“不确定”的形式出现,即没有进度条。我曾尝试自己设置
内容长度
标题,但它会自动删除

编辑:请注意,如上所述,我已经尝试了响应缓冲。这并没有解决我的问题

编辑2:以下是我使用的代码的SSCE

filecontroller.cs>操作


这似乎是BrowserLink中间件中的一个bug。不久前,微软对其进行了修补。阅读完整的线程。

这似乎是BrowserLink中间件中的一个bug。不久前,微软对其进行了修补。阅读全文。

可能重复您没有阅读我的问题。我已经提到,我已经尝试了响应缓冲,但没有成功。我甚至链接到同一个示例,说它不起作用。尽管您的代码没有显示您试图通过设置此配置来禁用分块。您的代码示例非常简单,因此很难帮助您。那么请给我们一个最小的可复制的例子。@JoelHarkes我在问题中添加了更多的代码。如果您在复制此问题时仍有任何困难,请告诉我。您可能的副本未阅读我的问题。我已经提到,我已经尝试了响应缓冲,但没有成功。我甚至链接到同一个示例,说它不起作用。尽管您的代码没有显示您试图通过设置此配置来禁用分块。您的代码示例非常简单,因此很难帮助您。那么请给我们一个最小的可复制的例子。@JoelHarkes我在问题中添加了更多的代码。如果您在复制此问题时仍有任何困难,请告诉我。
[HttpGet("files")]
public async Task<IActionResult> Download(string driveName, [Bind(Prefix = "id")] uint? fileId = null, [Bind(Prefix = "download")] int forceDownload = 0)
{
    // Send file info
    string filePath = "...";
    HttpContext.Response.Headers["Content-Length"] = new System.IO.FileInfo(filePath).Length.ToString();
    return PhysicalFile(Path.GetFullPath(filePath), QMimeTypeMap.GetMimeType(Path.GetExtension(filePath)));
}
app.UseStaticFiles();
app.UseResponseBuffering();
app.UseMvc();