增加在Azure上运行的Dockerized ASP.NET Core网站的最大上传大小限制?

时间:2019-06-06 17:23:49

标签: azure asp.net-core azure-web-sites kestrel

这是应用程序的体系结构:

  • 用ASP.NET Core编写的Web API。
  • Dockerfile使用microsoft/dotnet:2.1-sdk构建Web应用程序,并使用microsoft/dotnet:aspnetcore-rumtime执行API。该应用已编译并放置到/app中。
  • 为启动API而执行的命令为:ENTRYPOINT ["dotnet", "/app/WebAPI.dll"]
  • 此API部署到Azure容器注册表(Docker注册表)。
  • Azure应用服务用于托管API。 App Service已配置为从ACR中提取给定的容器。
  • API完全按预期运行。

问题在于,我们需要接受大于IIS和Kestrel所规定的28.6MB限制的帖子正文大小。我们在此URL上尝试过以下方法,但没有成功:https://www.talkingdotnet.com/how-to-increase-file-upload-size-asp-net-core/

  • 将Web.config文件添加到项目中无济于事,因为容器中运行的ASP.NET Core运行时不会拾取该文件。 (仅在Kestrel正在运行的容器内)
  • 添加[RequestSizeLimit]属性不能解决问题,因为我认为实际的限制发生在Azure级别。
    • 如果我正确理解,则容器中Kestrel上运行的Dockerized ASP.NET Core应用程序是从Azure IIS服务器反向代理的。因此IIS服务器上可能存在28.6MB的限制。
  • UesKestrel中设置大小限制也无效。
  • 当我们尝试实现“中间件”解决方案时,我们发现Features不是页面代码中给出的context对象的属性。

我们需要知道如何增加最大帖子大小。如果这是在整个应用程序服务计划级别,则可以。由于我们正在运行容器,因此我们不知道可以在何处放置具有适当设置的Web.config文件。

1 个答案:

答案 0 :(得分:0)

如果在Azure上使用Kubernetes而不是Azure App Service,则可以上传100MB以上的内容,而不会出现任何问题。 https://azure.microsoft.com/en-us/services/kubernetes-service/