Увеличиваете лимит максимального размера загрузки для сайта Dockerized ASP.NET Core, работающего в Azure? - PullRequest
1 голос
/ 06 июня 2019

Вот архитектура приложения:

  • Веб-API, написанный на ASP.NET Core.
  • Dockerfile создает веб-приложение, используя microsoft/dotnet:2.1-sdk, и выполняет API, используя microsoft/dotnet:aspnetcore-rumtime. Приложение скомпилировано и помещено в /app.
  • Команда для запуска API: ENTRYPOINT ["dotnet", "/app/WebAPI.dll"]
  • Этот API-интерфейс развернут в реестре контейнеров Azure (реестр Docker).
  • Служба приложений Azure используется для размещения API. Служба приложений настроена для извлечения данного контейнера из ACR.
  • API работает точно так же, как и ожидалось.

Проблема в том, что нам нужно принимать размеры тела сообщения, превышающие ограничение в 28,6 МБ, установленное IIS и Kestrel. Мы попробовали подходы по этому URL безуспешно: https://www.talkingdotnet.com/how-to-increase-file-upload-size-asp-net-core/

  • Добавление файла Web.config в проект не помогает, так как он не обнаруживается средой выполнения ASP.NET Core, работающей в контейнере. (внутри контейнера работает только Kestrel)
  • Добавление атрибута [RequestSizeLimit] не решает проблему, поскольку я считаю, что фактическое ограничение имеет место на уровне Azure.
    • Если я правильно понимаю, приложения Dockerized ASP.NET Core, работающие на Kestrel внутри контейнеров, подвергаются обратному прокси с сервера Azure IIS. Таким образом, на сервере IIS, вероятно, существует ограничение в 28,6 МБ.
  • Установка ограничения размера в UesKestrel также не оказывает влияния.
  • Когда мы попытались реализовать «промежуточное» решение, мы обнаружили, что Features не является свойством объекта context, как указано в коде на странице.

Нам нужно знать, как увеличить максимальный размер сообщения. Это нормально, если это на уровне всего плана обслуживания приложений. Так как мы запускаем контейнеры, мы не знаем, где мы могли бы разместить файл Web.config с соответствующей настройкой.

1 Ответ

0 голосов
/ 07 июня 2019

Если вы используете Kubernetes в Azure вместо службы приложений Azure, вы можете загрузить более 100 МБ без каких-либо проблем. https://azure.microsoft.com/en-us/services/kubernetes-service/

...