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?

Amr Elgarhy
sumber
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

abatishchev
sumber
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>
Anderson Rissardi
sumber
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>
Legenda
sumber