为了账号安全,请及时绑定邮箱和手机立即绑定

.NET Core 128kb 部署到 Azure 应用服务的文件大小限制

.NET Core 128kb 部署到 Azure 应用服务的文件大小限制

C#
慕田峪4524236 2023-07-09 10:06:24
我有一个在 Azure 应用服务实例上运行的 .NET Core 2.0 Web 应用程序。当我尝试使用 上传文件时file.CopyToAsync(),如果文件大于 128kB,则上传失败且没有诊断输出。有些照片类型(例如 png)即使大小有几 mB,也只会被切成 128kB。当我尝试在本地运行时,我可以将更大的文件上传到wwwroot/etc...本地计算机上的文件夹中,因此该问题似乎特定于 Azure 应用服务。我查找了有关文件大小限制等的文档,但我只看到每个文件 10/50 mB 和每个应用程序实例 10/50 GB 规模的限制。具体实现如下:Directory.CreateDirectory(Path.Combine(_env.WebRootPath, uploadDir));foreach (var file in files){    try    {        var filePath = Path.Combine(_env.WebRootPath, uploadDir, file.FileName);        using (var stream = new FileStream(filePath, FileMode.Create))        {            await file.CopyToAsync(stream);                    }    }    catch (Exception ex)    {        throw;    }}运行时没有错误或异常,但是当我使用 Kudu (site.scm.azurewebsites.net) 查看文件系统时,列出的文件没有大小,并且无法下载或查看。同样,对于 128kB 或更小的文件大小来说,效果非常好。我在任何地方都找不到有关 Azure 应用服务每个文件的此类限制的参考信息,所以只是想知道是否有其他人以前遇到过这种情况。谢谢
查看完整描述

1 回答

?
有只小跳蛙

TA贡献1824条经验 获得超8个赞

我想我已经解决了;为了以防万一,我将在这里发布答案给其他人,因为这已经得到了一些赞成票。

files我在发布的代码片段中循环的对象是一种类型IList<IFormFile>,我通过Request.Form.Files在控制器中进行转换来获得该类型。我为什么要这样做,我不记得了。IFormFileCollection无论如何,将文件列表保留为MVC 绑定的默认文件列表( 上的类型Request.Form.Files)似乎可以修复它。它还解决了我遇到的某些文件扩展名无法上传的另一个问题。

我似乎无法弄清楚为什么当我打电话时它会中断new List<IFormFile>(Request.Form.Files),但这里的教训应该是避免所有不必要的类型转换或转换。


查看完整回答
反对 回复 2023-07-09
  • 1 回答
  • 0 关注
  • 87 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信