Як встановити maxAllowedContentLength до 500 МБ під час роботи на IIS7?


94

Я змінив 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 більше максимального непідписаного int 4.294.967.295, ви шукаєте 502.400.000 як значення в ur config замість цього (без роздільників тисяч)
Леннарт

Відповіді:


97

Відповідно до MSDN maxAllowedContentLength має тип uint, його максимальне значення становить 4 294 967 295 байт = 3,99 Гб

Тож це має працювати нормально.

Див. Також статтю Запит на обмеження . Чи повертає IIS одну з цих помилок, коли відповідний розділ взагалі не налаштовано?

Див. Також: Перевищено максимальну довжину запиту


отже, це значення у мене 5024000000 - це Гб ?!
Amr Elgarhy

17
5024000000> 4294967295
Сем

2
500 Мб = 524288000, що зараз менше 4294967295
Амр Елгархі

144

Обмеження запитів у .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 Гб.
абатищев

10

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>
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.