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.