IIS 預設緩衝區 48KB (49152 bytes),超過大小的上傳會觸發 413 Request Entity Too Large 或瀏覽器重試死循環。三層參數調整可突破限制。
| 參數 | 層級 | 預設值 | 最大值 | 適用 IIS | 說明 |
|---|---|---|---|---|---|
UploadReadAheadSize | Metabase (IIS 6) / applicationHost.config (IIS 7+) | 49152 (48KB) | 4GB | IIS 6/7/7.5/8/8.5/10 | IIS 讀取至緩衝區再傳給 ISAPI/ASP.NET 的前置大小。設 0 可直接串流至 ISAPI 擴充 (需應用支援)。 |
maxRequestLength | web.config / machine.config | 4096 (4MB) | 2GB | ASP.NET (IIS 6/7+) | ASP.NET 執行階段請求大小限制。 |
maxAllowedContentLength | applicationHost.config / web.config (system.webServer/security/requestFiltering) | 30000000 (~30MB) | 4GB | IIS 7+ | IIS 核心請求過濾模組限制。 |
UploadReadAheadSize 設為 0 (若用 ISAPI 擴充處理上傳),或設為業務所需最大值 (如 104857600 = 100MB)。maxRequestLength (ASP.NET) 與 maxAllowedContentLength (IIS 7+),單位注意:前者 KB,後者 Bytes。三參數聯動調整,配合身分驗證,即可安全支援大檔案上傳業務。