首页 > 解决方案 > Azure 应用服务中的流文件丢失字节

问题描述

当我尝试使用 ASP.NET 核心和 ASP.NET 完整框架流式传输文件时,我遇到了一个非常不寻常的问题。

我一直在尝试使用在我的本地环境和本地 IIS 7 中工作的不同代码示例。但是,这些代码示例在应用服务中执行时效果不佳。下载完整的文件是不可能的。在每次执行中,我的文件都会丢失几个字节,从而导致文件损坏(下载时)。

由于我尝试了多个代码示例,因此这里没有提供代码片段。代码示例是从 stackoverflow 或官方文档中获取的。

标签: azureazure-web-app-service

解决方案


基本上我的代码有这个:

try
{
     WebRequest req = WebRequest.Create("[URL here]");
     WebResponse response = req.GetResponse();
     Stream stream = response.GetResponseStream();
     //...
}
catch (Exception)
{
     MessageBox.Show("There was a problem downloading the file");
}

控制器

 [HttpPost("Document")]
 [Produces("application/octet-stream")]
 [AllowAnonymous]
 public async Task<IActionResult> Download([FromBody]DownloadDmsRequest data)
 {

如果我在 MemoryStream 中接收流,我的文件将完全下载。我做了测试,将文件下载到内存中,然后将该文件上传到 blob 存储,文件上传成功,没有问题。


推荐阅读