C# 部署到Azure应用程序服务的.NET核心128kb文件大小限制
我有一个运行在Azure应用程序服务实例上的.NET Core 2.0 web应用程序。当我尝试使用C# 部署到Azure应用程序服务的.NET核心128kb文件大小限制,c#,azure,file,asp.net-core,C#,Azure,File,Asp.net Core,我有一个运行在Azure应用程序服务实例上的.NET Core 2.0 web应用程序。当我尝试使用file.CopyToAsync()上载文件时,如果文件大于128kB,上载将失败,并且没有诊断输出。有些照片类型,如png,即使大小为几mB,也会被剪切为128kB 当我尝试在本地运行时,我可以将大得多的文件上载到本地计算机上的wwwroot/etc.文件夹中,因此问题似乎特定于Azure应用程序服务。我查阅了有关文件大小限制等的文档,但我只看到每个文件有10/50MB的限制,每个应用程序实例有
file.CopyToAsync()
上载文件时,如果文件大于128kB,上载将失败,并且没有诊断输出。有些照片类型,如png,即使大小为几mB,也会被剪切为128kB
当我尝试在本地运行时,我可以将大得多的文件上载到本地计算机上的wwwroot/etc.
文件夹中,因此问题似乎特定于Azure应用程序服务。我查阅了有关文件大小限制等的文档,但我只看到每个文件有10/50MB的限制,每个应用程序实例有10/50GB的限制
具体实现如下所示:
Directory.CreateDirectory(Path.Combine(_env.WebRootPath,uploadDir));
foreach(文件中的var文件)
{
尝试
{
var filePath=Path.Combine(_env.WebRootPath,uploadDir,file.FileName);
使用(var stream=newfilestream(filePath,FileMode.Create))
{
等待文件.CopyToAsync(流);
}
}
捕获(例外情况除外)
{
投掷;
}
}
这运行时没有错误或异常,但当我使用Kudu(site.scm.azurewebsites.net)查看文件系统时,该文件没有大小,无法下载或查看。同样,对于128kB或更小的文件大小,它也能很好地工作
我在Azure应用程序服务中找不到任何地方提到这样的每个文件的限制,所以我只是想知道以前是否有人遇到过这个问题。谢谢我想我已经解决了;为了以防万一,我将在这里为其他人发布答案,因为这已经获得了一些选票 我在发布的代码片段中循环的
files
对象是IList
类型,我是通过在控制器中强制转换Request.Form.files
得到的。我想不起来我为什么要这样做。无论如何,将文件列表保留为MVC绑定到的默认IFormFileCollection
(Request.Form.Files上的类型)似乎可以解决这个问题。它还解决了我遇到的另一个问题,即某些文件扩展名无法上传
我似乎无法弄清楚为什么在调用newlist(Request.Form.Files)
,但这里的教训应该是避免所有不必要的类型铸件或转换