Как установить maxAllowedContentLength на 500 МБ при работе в IIS7?

99

Я изменил maxAllowedContentLength на

<security>
    <requestFiltering>
        <requestLimits maxAllowedContentLength="5024000000" />
    </requestFiltering>
</security>

В моем web.config, но при работе в IIS7 я получаю эту ошибку:

Атрибут maxAllowedContentLength недействителен. Недействительное целое число без знака

http://i.stack.imgur.com/u1ZFe.jpg

но когда я запускаю сервер VS, он работает нормально, без ошибок.

Как настроить мой веб-сайт, чтобы разрешить загрузку файлов размером 500 МБ без этой проблемы в IIS7?

Амр Элгархи
источник
1
5024000000 (позвольте мне добавить разделители тысяч) 5.024.000.000 больше, чем максимальное целое число без знака 4.294.967.295, вместо этого вы ищете 502.400.000 в качестве значения в конфигурации ur (без разделителей тысяч)
Леннарт

Ответы:

97

Согласно типу MSDN , его максимальное значение составляет 4294967295 байт = 3,99 ГБ.maxAllowedContentLengthuint

Так что все должно работать нормально.

См. Также статью «Ограничения запросов» . Возвращает ли IIS одну из этих ошибок, если соответствующий раздел вообще не настроен?

См. Также: Превышена максимальная длина запроса.

Абатищев
источник
так это значение у меня 5024000000 на ГБ ?!
Амр Элгархи
17
5024000000> 4294967295
Сэм,
2
500 МБ = 524288000, что сейчас меньше 4294967295
Амр Элгархи,
151

Лимит запросов в .Net можно настроить из двух свойств вместе:

Первый

  • Web.Config/system.web/httpRuntime/maxRequestLength
  • Единица измерения: килобайты
  • Значение по умолчанию 4096 КБ (4 МБ)
  • Максимум. значение 2147483647 КБ (2 ТБ)

Второй

  • Web.Config/system.webServer/security/requestFiltering/requestLimits/maxAllowedContentLength (в байтах)
  • Единица измерения: байты
  • Значение по умолчанию 30000000 байт (28,6 МБ)
  • Максимум. значение 4294967295 байт (4 ГБ)

Ссылки:

Пример:

<location path="upl">
   <system.web>
     <!--The default size is 4096 kilobytes (4 MB). MaxValue is 2147483647 KB (2 TB)-->
     <!-- 100 MB in kilobytes -->
     <httpRuntime maxRequestLength="102400" />
   </system.web>
   <system.webServer>
     <security>
       <requestFiltering>          
         <!--The default size is 30000000 bytes (28.6 MB). MaxValue is 4294967295 bytes (4 GB)-->
         <!-- 100 MB in bytes -->
         <requestLimits maxAllowedContentLength="104857600" />
       </requestFiltering>
     </security>
   </system.webServer>
 </location>
Андерсон Риссарди
источник
4
Очень полезно, однако я считаю, что максимальное значение maxAllowedContentLength составляет примерно 4 ГБ, а не 4 ТБ
Snicklefritz
В статье говорится: «Указывает максимальную длину содержимого в запросе в байтах». Означает, что оба ключа конфигурации используют BYTES, что делает максимальный размер запроса одинаковым, 4 ГБ.
Абатищев
12

IIS v10 (но то же самое должно быть и для IIS 7.x)

Быстрое добавление для людей, которые ищут соответствующие максимальные значения

Макс. Для maxAllowedContentLength: UInt32.MaxValue 🡒 4294967295 bytes:~4GB

Макс. Для maxRequestLength: Int32.MaxValue🡒 2147483647 bytes:~2GB

web.config

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.web>
    <!-- ~ 2GB -->
    <httpRuntime maxRequestLength="2147483647" />
  </system.web>
  <system.webServer>
    <security>
      <requestFiltering>
        <!-- ~ 4GB -->
        <requestLimits maxAllowedContentLength="4294967295" />
      </requestFiltering>
    </security>
  </system.webServer>
</configuration>
Легенды
источник