Làm cách nào để đặt maxAllowedContentLength thành 500MB khi chạy trên IIS7?


93

Tôi đã thay đổi maxAllowedContentLength thành

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

Trong web.config của tôi, nhưng khi chạy trên IIS7, tôi gặp lỗi này:

Thuộc tính 'maxAllowedContentLength' không hợp lệ. Không phải là số nguyên không dấu hợp lệ

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

nhưng khi tôi chạy trong máy chủ VS nó chạy bình thường mà không có bất kỳ lỗi nào.

Làm cách nào để định cấu hình trang web của tôi để cho phép tải lên các tệp có kích thước 500MB mà không gặp sự cố này trên IIS7?


5024000000 (hãy để tôi thêm ngàn dải phân cách) 5.024.000.000 lớn hơn int unsigned tối đa 4.294.967.295, bạn đang tìm kiếm 502.400.000 như giá trị trong ur cấu hình thay vì (không có chữ số hàng nghìn dải phân cách)
Lennart

Câu trả lời:


97

Theo MSDN maxAllowedContentLength có loại uint, giá trị tối đa của nó là 4,294,967,295 byte = 3,99 gb

Vì vậy, nó sẽ hoạt động tốt.

Xem thêm bài viết Giới hạn yêu cầu . IIS có trả về một trong những lỗi này khi phần thích hợp không được định cấu hình không?

Xem thêm: Đã vượt quá độ dài yêu cầu tối đa


vì vậy giá trị này tôi có 5024000000 là bằng gb ?!
Amr Elgarhy

16
5024000000> 4294967295
Sam

2
500MB = 524.288.000 mà bây giờ là ít hơn 4294967295
Amr Elgarhy

144

Giới hạn yêu cầu trong .Net có thể được định cấu hình từ hai thuộc tính cùng nhau:

Đầu tiên

  • Web.Config/system.web/httpRuntime/maxRequestLength
  • Đơn vị đo lường: kilobyte
  • Giá trị mặc định 4096 KB (4 MB)
  • Tối đa giá trị 2147483647 KB (2 TB)

Thứ hai

  • Web.Config/system.webServer/security/requestFiltering/requestLimits/maxAllowedContentLength (tính bằng byte)
  • Đơn vị đo lường: byte
  • Giá trị mặc định 30000000 byte (28,6 MB)
  • Tối đa giá trị 4294967295 byte (4 GB)

Người giới thiệu:

Thí dụ:

<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
Rất hữu ích, tuy nhiên tôi tin rằng giá trị tối đa cho maxAllowedContentLength là khoảng 4 GB, không 4 TB
Snicklefritz

Bài báo có nội dung "Chỉ định độ dài tối đa của nội dung trong một yêu cầu, tính bằng byte.". Có nghĩa là cả hai khóa cấu hình đều sử dụng BYTES làm cho kích thước yêu cầu tối đa giống nhau, 4GB.
abatishchev

9

IIS v10 (nhưng điều này cũng tương tự đối với IIS 7.x)

Bổ sung nhanh chóng cho những người đang tìm kiếm các giá trị tối đa tương ứng

Max cho maxAllowedContentLengthlà: UInt32.MaxValue 🡒 4294967295 bytes:~4GB

Max cho maxRequestLengthlà: 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>
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.