[ASP .NET] API Request及Respond內容上限
要改變上傳到IIS的資料大小,可在wbe.config中加上以下設定:
<configuration>
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="104857600" />
</requestFiltering>
</security>
</system.webServer>
</configuration>
單位為bytes,所以104857600 = 100mb x 1024 x 1024 bytes,通常會遇到這問題大多是要上傳檔案時,但其實上傳JSON太大也會被擋掉。
其他還有maxQueryString可設定QueryString大小、maxUrl可設定url長度大小,詳細說明可參考Microsoft Docs
另外在API傳出JSON時,也有大小限制,可在web.config中加上以下設定:
<configuration>
<system.web.extensions>
<scripting>
<webServices>
<jsonSerialization maxJsonLength="102400"></jsonSerialization>
</webServices>
</scripting>
</system.web.extensions>
</configuration>
這樣直接影響這個站台所有的JSON輸出長度(UTF-8 characters),詳細說明可參考Microsoft Docs
但如果想要只調整某一個API輸出的長度,可用以下方式:
public JsonResult TestMethod()
{
return new JsonResult()
{
Data = result,
MaxJsonLength = Int32.MaxValue
};
//return Json(result);
}
直接設定輸出的JSON長度,關於JsonResult詳細說明可參考Microsoft Docs。