最近有一個需求是,要透過A網站作為Client端把文件透過bytes的方式傳送到B網站作處理來取回
但是測試的時候發現,怎麼超過4096KB就出現500 Error,於是Debug的時候才看到以下訊息:超出最大的要求長度
原來,網站預設的Content Length最大限制是4096KB
所以超過便會錯誤,因此我們需要來調高一下傳送資料的上限大小
前言
最近有一個需求是,要透過A網站作為Client端把文件透過bytes的方式傳送到B網站作處理來取回
但是測試的時候發現,怎麼超過4096KB就出現500 Error,於是Debug的時候才看到以下訊息:
原來,網站預設的Content Length最大限制是4096KB
所以超過便會錯誤,因此我們需要來調高一下傳送資料的上限大小
處理方法
開發時
Asp.Net網站開發本身預設的資料傳輸大小上限為4096KB
如果要傳輸更大的資料內容,請在Web.config中以下的sytem.web標籤內的httpRuntime加上maxRequestLength,如下修改成上限為約30MB(28.6MB)
<system.web>
<httpRuntime executionTimeout="600000" maxRequestLength="30000000"/>
</system.web>
如此便可以傳輸了! 但是!
如果你要把網站真正佈署到IIS機器上,還需要在Web.Config另外設定
網站佈署到IIS上的另外設定
在Web.Config的system.webServer標籤下設定maxAllowedContentLength
如下:
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="30000000" />
<!--若是檔案超過4096KB 請maxAllowedContentLength-->
</requestFiltering>
</security>
</system.webServer>
希望有幫助到各位謝謝,更詳細的資料可以詳見參考 :)
參考資料
Dealing with large files in ASP.NET Web API
文章中的敘述如有觀念不正確錯誤的部分,歡迎告知指正 謝謝 =)
另外要轉載請附上出處 感謝