IIS 檔案上傳的大小限制 File Upload Limit (MaxRequestLength, MaxAllowedContentLength)
2021-06-30
筆記 IIS 檔案上傳發生因檔案大小限制 (413.1 Content Length Too Large),實體不足無法正確上傳檔案時的處理方式。
說明
檔案上傳大小的限制分別受到 IIS 與 ASP 的限制,要分別進行調整。
常用大小組合:
IIS maxAllowedContentLength | ASP.NET maxRequestLength | |
---|---|---|
10MB | 10485760 | 102400 |
30MB | 31457280 | 307200 |
50MB | 52484800 | 512000 |
100MB | 104857600 | 1024000 |
200MB | 209715200 | 2048000 |
500MB | 524288000 | 5120000 |
1GB | 1048576000 | 10240000 |
IIS 部分
藉由調整 maxAllowedContentLength來設定 IIS 所允許的檔案上傳大小,預設值為 30000000 相當於 28.6 MB,調整為 104857600 相當於 100 MB。
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="104857600" />
</requestFiltering>
</security>
</system.webServer>
另外也可以使用 GUI 來在要求篩選 (Filter Request) 設定:
ASP.NET 部分
An optional read/write sint32 value that specifies the limit, in kilobytes, for the input stream buffering threshold. The default is 4096 (4 MB).
You can use this limit to prevent denial of service attacks that are caused, for example, by users posting large files to the server.
learn.microsoft.com
藉由設定 maxRequestLength來調整 ASP.NET 所允許的檔案上傳大小,預設值為 4096 KB,調整為 1024000 KB 相當於 100 MB。
<system.web>
<httpRuntime
maxRequestLength="102400"
executionTimeout="3600"
appRequestQueueLimit="10000"
requestValidationMode="2.0"
enableVersionHeader="false"/>
</system.web>
UploadAheadSize
一般情況下不需要特別進行此調整,但如果上述調整如何仍無法正常,可以嘗試調整。
設定的層級是伺服器或者是網站,無法針對個別應用系統或虛擬目錄去設定。
參考資料
Which gets priority, maxRequestLength or maxAllowedContentLength