Служба приложений Azure Java - отправка запроса на загрузку не соответствует размеру - PullRequest
0 голосов
/ 25 сентября 2019

У меня есть служба приложений Linux Azure для запуска загрузочного JAR Spring.

В этом приложении у меня есть несколько форм для загрузки файлов в приложение Spring, которые затем обрабатываются.

Все это отлично работает локально и на экземпляре AWS Elastic Beanstalk.

В службе приложений Azure Linux с файлами размером более 4 МБ происходит сбой.

Я предполагаю, что экземпляр IIS, который, вероятно, работает перед службой приложений, имеет ограничение на количество видов, блокирующее пост-запрос определенного размера.

Я искал любую настройку, которую я могу установить на портале Azure, чтобы позволить загружать файлы большего размера, но просто не смог ее найти.

Есть идеи?


Как это было решено

(если вы используете Spring boot и Maven для развертывания и т. Д.)

На основе ответа @GeorgeChenниже.

Создайте файл web.config в корне моего проекта Maven, например:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <system.web>
        <!-- 100 MB in kilobytes -->
        <httpRuntime maxRequestLength="204800" />
    </system.web>

    <system.webServer>
        <security>
            <requestFiltering>
                <!-- 100 MB in bytes -->
                <requestLimits maxAllowedContentLength="209715200" />
            </requestFiltering>
        </security>
    </system.webServer>
</configuration>

Изменен файл POM, в разделе подключаемых модулей Maven:

            <plugin>
                <groupId>com.microsoft.azure</groupId>
                <artifactId>azure-webapp-maven-plugin</artifactId>
                <version>1.6.0</version>
                <configuration>
                    <schemaVersion>V2</schemaVersion>
                    <resourceGroup>XXXXXXXXX</resourceGroup>
                    <appName>YYYYYYYYYYY</appName>
                    <region>northeurope</region>
                    <pricingTier>B2</pricingTier>
                    <runtime>
                        <os>linux</os>
                        <javaVersion>jre8</javaVersion>
                        <webContainer>jre8</webContainer>
                    </runtime>
                    <deployment>
                        <resources>
                            <resource><directory>${project.basedir}/target</directory>
                                <includes>
                                    <include>*.jar</include>
                                </includes>
                            </resource>
                            <resource>
                                <directory>${project.basedir}</directory>
                                <targetPath>/</targetPath>
                                <includes>
                                    <include>web.config</include>
                                </includes>
                            </resource>
                        </resources>
                    </deployment>
                </configuration>
            </plugin>

Теперь после упаковки и развертывания все работает, и загрузка может занять до 100 МБ через Azure.

1 Ответ

1 голос
/ 26 сентября 2019

Размер запроса по умолчанию составляет 4 МБ, вы можете получить его здесь: запрос в службу поддержки Рекомендации по загрузке файлов .Поэтому вам нужно увеличить этот лимит, если вы хотите разрешить загрузку и скачивание файлов большего размера.

Вы можете установить значения maxRequestLength и maxAllowedContentLength в вашем файле web.config.

Здесьобразец web.config.

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.web>
    <!-- 100 MB in kilobytes -->
    <httpRuntime maxRequestLength="204800" />
</system.web>

<system.webServer>
    <security>
        <requestFiltering>
            <!-- 100 MB in bytes -->
            <requestLimits maxAllowedContentLength="209715200" />
        </requestFiltering>
    </security>
</system.webServer>

Более подробную информацию можно найти в этом блоге: Загрузить большой файл в asp.net или на веб-сайте в Windows Azure .

Кроме того, вы можете загрузить файл в хранилище Azure для обработки больших файлов.Это касается использования Web API и Azure Blob .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...