System.Web.HttpException: превышена максимальная длина запроса

Я получаю исключение. Я пробовал много решений от SO, которые не работали, потому что большинство из них для asp.net.

Это часть web.xml моего веб-приложения:

<servlet>
    <servlet-name>MainPageServlet</servlet-name>
    <servlet-class>servlets.MainPageServlet</servlet-class>
    <multipart-config>
        <!-- 10MB of files -->
        <max-file-size>10485760B</max-file-size>
        <!-- 10KB of form data -->
        <max-request-size>10240B</max-request-size>
        <!-- Buffer to disk over 512KB -->
        <file-size-threshold>524288B</file-size-threshold>
    </multipart-config>
</servlet>
<servlet-mapping>
    <servlet-name>MainPageServlet</servlet-name>
    <url-pattern>/mainPage/*</url-pattern>
</servlet-mapping>

Это ошибка, которую я получаю (в браузере после загрузки файла http post):

   [HttpException (0x80004005): Maximum request length exceeded.]
   System.Web.HttpRequest.GetEntireRawContent() +9685979
   System.Web.HttpRequest.get_InputStream() +41
   Caucho.IIS.ResinHandler.DoHmux(HttpContext context) +138
   Caucho.IIS.ResinHandler.ProcessRequest(HttpContext context) +334
   System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +341
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +69

Файл имеет 5,2Mb.

Любая идея, где я должен установить максимальный размер файла? Как вы можете видеть, это не работает, если я установил его в web.xml.

Я использую resin java-сервер.

Также, когда я добавляю 'B' как Bytes после того, как значение размера java IDE жалуется. Однако, если его нет, я получаю эту ошибку:

500 Servlet exception
WEB-INF/web.xml:29: com.caucho.server.dispatch.MultipartConfigImpl.setMaxFileSize():
com.caucho.config.types.Bytes.addText(): byte-valued expression `10485760'
must have units.  '16B' for bytes, '16K' for kilobytes, '16M' for megabytes,
'16G' for gigabytes.

Ответы

Ответ 1

max-request-size - это не максимальный размер данных формы, это максимальный размер всего запроса на загрузку.

Посмотрите: https://docs.oracle.com/javaee/7/tutorial/servlets011.htm 17.11.1

В вашем случае сделайте максимальный размер запроса более 5,2 МБ