Bagaimana cara menyetel maxAllowedContentLength ke 500MB saat berjalan di IIS7?


94

Saya mengubah maxAllowedContentLength menjadi

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

Di web.config saya, tetapi ketika berjalan di IIS7 saya mendapatkan kesalahan ini:

Atribut 'maxAllowedContentLength' tidak valid. Bukan bilangan bulat unsigned yang valid

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

tetapi ketika saya menjalankan di server VS itu berjalan normal tanpa kesalahan.

Bagaimana cara mengkonfigurasi website saya untuk mengizinkan upload file dengan ukuran 500MB, tanpa masalah ini di IIS7?


1
5024000000 (izinkan saya menambahkan ribuan pemisah) 5.024.000.000 lebih besar dari int maksimum unsigned 4.294.967.295, Anda mencari 502.400.000 sebagai nilai di konfigurasi Anda (tanpa seribu pemisah)
Lennart

Jawaban:


97

Menurut jenis MSDN , nilai maksimumnya adalah 4.294.967.295 byte = 3.99 gbmaxAllowedContentLengthuint

Jadi itu harus bekerja dengan baik.

Lihat juga artikel Meminta Batas . Apakah IIS mengembalikan salah satu kesalahan ini ketika bagian yang sesuai tidak dikonfigurasi sama sekali?

Lihat juga: Panjang permintaan maksimum terlampaui


jadi nilai yang saya miliki 5024000000 adalah oleh gb ?!
Amr Elgarhy

17
5024000000> 4294967295
Sam

2
500MB = 524288000 yang sekarang kurang dari 4294967295
Amr Elgarhy

144

Batas permintaan di .Net dapat dikonfigurasi dari dua properti secara bersamaan:

Pertama

  • Web.Config/system.web/httpRuntime/maxRequestLength
  • Satuan ukuran: kilobyte
  • Nilai default 4096 KB (4 MB)
  • Max. nilai 2147483647 KB (2 TB)

Kedua

  • Web.Config/system.webServer/security/requestFiltering/requestLimits/maxAllowedContentLength (dalam byte)
  • Satuan ukuran: byte
  • Nilai default 30000000 byte (28,6 MB)
  • Max. nilai 4294967295 byte (4 GB)

Referensi:

Contoh:

<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
Sangat membantu, namun saya yakin bahwa nilai maksimal maxAllowedContentLength kira-kira 4 GB, bukan 4 TB
Snicklefritz

Artikel tersebut mengatakan "Menentukan panjang maksimum konten dalam permintaan, dalam byte.". Berarti kedua kunci konfigurasi menggunakan BYTES membuat ukuran permintaan maks sama, 4 GB.
abatishchev

10

IIS v10 (tetapi ini harus sama juga untuk IIS 7.x)

Penambahan cepat untuk orang-orang yang mencari nilai maksimal masing-masing

Maksimum maxAllowedContentLengthadalah: UInt32.MaxValue 🡒 4294967295 bytes:~4GB

Maksimum maxRequestLengthadalah: 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>
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.