IIS7 üzerinde çalışırken maxAllowedContentLength değeri 500MB olarak nasıl ayarlanır?


99

MaxAllowedContentLength değerini şu şekilde değiştirdim:

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

Web.config dosyamda, ancak IIS7 üzerinde çalışırken şu hatayı alıyorum:

"MaxAllowedContentLength" özelliği geçersiz. Geçerli bir işaretsiz tam sayı değil

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

ancak VS sunucusunda çalıştırdığımda herhangi bir hata olmadan normal şekilde çalışıyor.

IIS7'de bu sorun olmadan web sitemi 500MB boyutunda dosya yüklemeye izin verecek şekilde nasıl yapılandırabilirim?


1
5024000000 (bin ayırıcı eklememe izin verin) 5.024.000.000, maksimum işaretsiz int 4.294.967.295'ten daha büyük, bunun yerine ur yapılandırmasındaki değer olarak 502.400.000'i arıyorsunuz (bin ayırıcı olmadan)
— Lennart

Yanıtlar:


97

Göre MSDN'den maxAllowedContentLength türü vardır uint, bunun en büyük değer 4,294,967,295 bit = 3,99 gb

Yani iyi çalışmalı.

Ayrıca İstek Limitleri makalesine bakın . IIS, uygun bölüm hiç yapılandırılmadığında bu hatalardan birini döndürür mü?

Ayrıca bkz: Maksimum istek uzunluğu aşıldı


yani 5024000000'e sahip olduğum bu değer gb'ye göre mi?
— Amr Elgarhy

17
5024000000> 4294967295
— Sam

2
500 MB = 524288000 şu anda 4294967295'ten az
— Amr Elgarhy

155

.Net'teki isteklerin sınırı iki özellikten birlikte yapılandırılabilir:

İlk

  • Web.Config/system.web/httpRuntime/maxRequestLength
  • Ölçü birimi: kilobayt
  • Varsayılan değer 4096 KB (4 MB)
  • Maks. Alan sayısı değer 2147483647 KB (2 TB)

İkinci

  • Web.Config/system.webServer/security/requestFiltering/requestLimits/maxAllowedContentLength (bayt cinsinden)
  • Ölçü birimi: bayt
  • Varsayılan değer 30000000 bayt (28,6 MB)
  • Maks. Alan sayısı değer 4294967295 bayt (4 GB)

Referanslar:

Misal:

<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
Çok yararlı, ancak maxAllowedContentLength için maksimum değerin 4 TB değil, kabaca 4 GB olduğuna inanıyorum
— Snicklefritz

Makalede "Bir istekteki içeriğin maksimum uzunluğunu bayt cinsinden belirtir." Diyor. Her iki yapılandırma anahtarının da BYTES kullandığı anlamına gelir ve maksimum istek boyutunu aynı 4GB yapar.
— abatishchev

13

IIS v10 (ancak bu, IIS 7.x için de aynı olmalıdır)

İlgili maksimum değerleri arayan kişiler için hızlı ekleme

Maks için maxAllowedContentLength: UInt32.MaxValue 🡒 4294967295 bytes:~4GB

Maks için 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>
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.