[Asp.Net | IIS] 如何使網站傳輸大量資料 (Send or deal Large Data/Files)

  • 3238
  • 0
  • IIS
  • 2014-12-27

最近有一個需求是,要透過A網站作為Client端把文件透過bytes的方式傳送到B網站作處理來取回
但是測試的時候發現,怎麼超過4096KB就出現500 Error,於是Debug的時候才看到以下訊息:超出最大的要求長度
原來,網站預設的Content Length最大限制是4096KB
所以超過便會錯誤,因此我們需要來調高一下傳送資料的上限大小

前言

 


 

最近有一個需求是,要透過A網站作為Client端把文件透過bytes的方式傳送到B網站作處理來取回

image

 

但是測試的時候發現,怎麼超過4096KB就出現500 Error,於是Debug的時候才看到以下訊息:

image

原來,網站預設的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

 


 

文章中的敘述如有觀念不正確錯誤的部分,歡迎告知指正 謝謝 =)

另外要轉載請附上出處 感謝