Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> 電腦軟體教學 >> 伺服器技術 >> 關於伺服器

IIS 7/8/10 上傳大文件雙重限制破解:maxRequestLength + requestFiltering 完整配置指南

編輯:關於伺服器

雙重限制陷阱

IIS 7+ 上傳大文件會遭遇兩道關卡,任一未通過即失敗:

單位陷阱:maxRequestLength 單位 = KB;maxAllowedContentLength 單位 = Bytes。

目標:支援 500 MB 上傳 (示例)

步驟一:配置 ASP.NET 限制 (web.config)

<configuration>
  <system.web>
    <!-- maxRequestLength 單位 KB,500MB = 512,000 KB -->
    <httpRuntime 
        maxRequestLength="512000" 
        executionTimeout="3600" 
        requestValidationMode="2.0" 
        />
  </system.web>
</configuration>
  • executionTimeout:請求執行超時 (秒),大文件上傳需放大 (如 3600 秒 = 1 小時)。
  • requestValidationMode="2.0":相容舊版驗證模式 (可選)。

步驟二:配置 IIS 請求篩選限制 (web.config + 圖形介面)

方法 A:web.config (推薦,版本控制、自動化部署)

<configuration>
  <system.webServer>
    <security>
      <requestFiltering>
        <!-- maxAllowedContentLength 單位 Bytes,500MB = 524,288,000 Bytes -->
        <requestLimits maxAllowedContentLength="524288000" />
      </requestFiltering>
    </security>
  </system.webServer>
</configuration>

方法 B:IIS 管理員圖形介面

  1. 打開 IIS 管理員 → 選中網站/應用程式。
  2. 功能視圖雙擊 請求篩選。
  3. 右側動作欄點擊 編輯功能設定。
  4. 允許的最大內容長度 (Bytes):輸入 524288000。
  5. 確定 → 自動寫入 web.config。

步驟三:驗證生效

  1. iisreset (確保配置重載)。
  2. 瀏覽器/Postman/curl 上傳 500MB 測試文件:
    curl -X POST -F "file=@test_500mb.dat" https://your-site/upload
  3. 成功返回 200/201,無 404.13 / 500.19 / 413 錯誤。

常見錯誤碼對照表

關卡配置位置預設值控制範圍
ASP.NET 執行階段web.config → <httpRuntime maxRequestLength="..." />4 MB (4096 KB)ASP.NET 管線處理的請求體大小
IIS 核心請求篩選IIS 管理員 → 請求篩選 → 編輯功能設定 → 允許的最大內容長度
或 web.config → <security> → <requestFiltering> → <requestLimits maxAllowedContentLength="..." />
30 MB (30,000,000 bytes)所有經過 IIS 核心的請求體大小 (含靜態、PHP、Python、Node.js)

進階:超大文件 (GB 級) 上傳最佳實踐

  • ❌ 不要單次 POST 巨型文件:瀏覽器/代理/防火牆/殺毒軟體任一環節可能截斷/超時。
  • ✅ 分片上傳 (Chunked Upload):前端切片 (如 5MB/片) → 並發/串列上傳 → 後端合併 (或對象存儲分片上傳 API)。
      庫:WebUploader、Plupload、Uppy、Dropzone.js、Tus.io (開放協議)。
  • ✅ 直傳對象存儲 (OSS/S3/COS):前端獲取簽名/STS 憑證 → 直傳雲存儲 → 回調業務伺服器入庫。
      源站零流量、零壓力、天然支援斷點續傳、多區域加速。
  • ✅ 啟用 IIS 輸出快取/壓縮:上傳接口通常不需快取,但下載/預覽接口必開。

總結

IIS 7+ 上傳大文件 = 雙重限制雙重破。
maxRequestLength (KB) + maxAllowedContentLength (Bytes) 同步放大。
單位不搞錯、超時同放大、驗證必跑通。
GB 級走分片/直傳 OSS,別硬抗單次 POST。

Copyright © Windows教程網 All Rights Reserved
錯誤碼含義原因解決
404.13Content Length Too Large超過 maxAllowedContentLength增大 requestFiltering requestLimits
500.19Config Errorweb.config 語法錯誤/節點重複/權限檢查 XML 格式、節點唯一性
413Payload Too Large反向代理 (Nginx/ARR) 限制調整代理 client_max_body_size
Request Timeout執行超時超過 executionTimeout / connectionTimeout增大超時、啟用分片上傳