gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 18:11:40 24 4
gpt4 key购买 nike

我有一个在 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 应用服务每个文件的此类限制的引用信息,所以只是想知道是否有人以前遇到过这种情况。谢谢

最佳答案

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

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

我似乎不明白为什么当我打电话 new List<IFormFile>(Request.Form.Files) 时它就坏了,但这里的教训应该是避免所有不必要的类型转换或转换。

关于c# - .NET Core 128kb 部署到 Azure 应用服务的文件大小限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57117392/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com