【发布时间】:2021-06-25 05:39:11
【问题描述】:
我在 Azure 上上传大文件时遇到问题。我正在开发一个 ASP.NET Core 5.0 API 项目。 我已经实现了关于Microsoft recommendation 的功能。此外,我添加了一个池机制,因此前端应用程序有另一个端点来检查上传状态。 当我在本地运行时一切正常,但我在 Azure 上遇到了一个大文件的问题。我的 API 使用的是 Azure App Service Premium P1v3。它为大文件(超过 1GB)返回 502 错误网关。
我做了一个测试,98% 的时间都花在了读取流上。来自 Microsft 文档:
if (MultipartRequestHelper
.HasFileContentDisposition(contentDisposition))
{
untrustedFileNameForStorage = contentDisposition.FileName.Value;
// Don't trust the file name sent by the client. To display
// the file name, HTML-encode the value.
trustedFileNameForDisplay = WebUtility.HtmlEncode(
contentDisposition.FileName.Value);
streamedFileContent =
await FileHelpers.ProcessStreamedFile(section, contentDisposition,
ModelState, _permittedExtensions, _fileSizeLimit);
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
}
我知道 Azure 应用服务上有 230 秒的负载均衡器超时,但是当我使用邮递员测试它时,大多数情况下 30 秒后返回 502。
也许我需要在 Azure 应用服务上设置一些配置功能?始终开启。
我想继续使用 Azure 应用服务,但我正在考虑迁移到 Azure 应用服务或允许前端应用程序将文件直接上传到 Azure Blob 存储。
你知道怎么解决吗?
【问题讨论】:
-
如果我的回复有帮助,请采纳为答案(点击回复旁边的标记选项将其从灰色切换为填写。),请参阅meta.stackexchange.com/questions/5234/…
-
您好,我遇到了一个非常相似的问题,但是使用 NodeJs,您能解决这个问题吗?我已经为此苦苦挣扎了好几天
标签: c# .net azure asp.net-core azure-web-app-service